game.decoded.js 298 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153515451555156515751585159516051615162516351645165516651675168516951705171517251735174517551765177517851795180518151825183518451855186518751885189519051915192519351945195519651975198519952005201520252035204520552065207520852095210521152125213521452155216521752185219522052215222522352245225522652275228522952305231523252335234523552365237523852395240524152425243524452455246524752485249525052515252525352545255525652575258525952605261526252635264526552665267526852695270527152725273527452755276527752785279528052815282528352845285528652875288528952905291529252935294529552965297529852995300530153025303530453055306530753085309531053115312531353145315531653175318531953205321532253235324532553265327532853295330533153325333533453355336533753385339534053415342534353445345534653475348534953505351535253535354535553565357535853595360536153625363536453655366536753685369537053715372537353745375537653775378537953805381538253835384538553865387538853895390539153925393539453955396539753985399540054015402540354045405540654075408540954105411541254135414541554165417541854195420542154225423542454255426542754285429543054315432543354345435543654375438543954405441544254435444544554465447544854495450545154525453545454555456545754585459546054615462546354645465546654675468546954705471547254735474547554765477547854795480548154825483548454855486548754885489549054915492549354945495549654975498549955005501550255035504550555065507550855095510551155125513551455155516551755185519552055215522552355245525552655275528552955305531553255335534553555365537553855395540554155425543554455455546554755485549555055515552555355545555555655575558555955605561556255635564556555665567556855695570557155725573557455755576557755785579558055815582558355845585558655875588558955905591559255935594559555965597559855995600560156025603560456055606560756085609561056115612561356145615561656175618561956205621562256235624562556265627562856295630563156325633563456355636563756385639564056415642564356445645564656475648564956505651565256535654565556565657565856595660566156625663566456655666566756685669567056715672567356745675567656775678567956805681568256835684568556865687568856895690569156925693569456955696569756985699570057015702570357045705570657075708570957105711571257135714571557165717571857195720572157225723572457255726572757285729573057315732573357345735573657375738573957405741574257435744574557465747574857495750575157525753575457555756575757585759576057615762576357645765576657675768576957705771577257735774577557765777577857795780578157825783578457855786578757885789579057915792579357945795579657975798579958005801580258035804580558065807580858095810581158125813581458155816581758185819582058215822582358245825582658275828582958305831583258335834583558365837583858395840584158425843584458455846584758485849585058515852585358545855585658575858585958605861586258635864586558665867586858695870587158725873587458755876587758785879588058815882588358845885588658875888588958905891589258935894589558965897589858995900590159025903590459055906590759085909591059115912591359145915591659175918591959205921592259235924592559265927592859295930593159325933593459355936593759385939594059415942594359445945594659475948594959505951595259535954595559565957595859595960596159625963596459655966596759685969597059715972597359745975597659775978597959805981598259835984598559865987598859895990599159925993599459955996599759985999600060016002600360046005600660076008600960106011601260136014601560166017601860196020602160226023602460256026602760286029603060316032603360346035603660376038603960406041604260436044604560466047604860496050605160526053605460556056605760586059606060616062606360646065606660676068606960706071607260736074607560766077607860796080608160826083608460856086608760886089609060916092609360946095609660976098609961006101610261036104610561066107610861096110611161126113611461156116611761186119612061216122612361246125612661276128612961306131613261336134613561366137613861396140614161426143614461456146614761486149615061516152615361546155615661576158615961606161616261636164616561666167616861696170617161726173617461756176617761786179618061816182618361846185618661876188618961906191619261936194619561966197619861996200
  1. var _0x18b3 = ['RklSRUJBTEwgUFJPSkVDVElMRQ==', 'REVBRF9BTklNX0xFTkdUSA==', 'Qk9VTkNFX1NQRUVE', 'REVBRDA=', 'REVBRDE=', 'REVBRDI=', 'bGlmZQ==', 'TElGRV9NQVg=', 'RklSRSBCUkVBVEggUFJPSkVDVElMRQ==', 'dGhyb3dUaW1lcg==', 'VEhST1dfREVMQVk=', 'SEFNTUVSIFBST0pFQ1RJTEU=', 'VEhST1c=', 'dGhyb3c=', 'cmlzZQ==', 'UklTRV9SQVRF', 'TVVTSFJPT00=', 'RklSRSBGTE9XRVI=', 'U1RBUg==', 'T05FVVA=', 'dXNlZA==', 'QVhF', 'UE9JU09OIE1VU0hST09N', 'Q09JTg==', 'Q0hFQ0tNQVJL', 'b2Zmc2V0', 'Y29sb3I=', 'dGV4dA==', 'VEVYVA==', 'Yml0cw==', 'RkFMTF9TUEVFRA==', 'dmVs', 'YW5n', 'bWFw', 'VVBfVElNRQ==', 'RE9XTl9USU1F', 'TU9WRV9TUEVFRA==', 'Y29udGFpbmVy', 'b25tb3VzZW1vdmU=', 'bW91c2U=', 'ZXZlbnQ=', 'b25tb3VzZWRvd24=', 'b25tb3VzZXVw', 'YWRkRXZlbnRMaXN0ZW5lcg==', 'bW91c2V3aGVlbA==', 'd2hlZWw=', 'RE9NTW91c2VTY3JvbGw=', 'b25rZXl1cA==', 'a2V5Ym9hcmQ=', 'b25rZXlkb3du', 'dG91Y2hFdnQ=', 'dG91Y2g=', 'dG91Y2hzdGFydA==', 'dG91Y2htb3Zl', 'dG91Y2hlbmQ=', 'SU5QVVRT', 'dXAgZG93biBsZWZ0IHJpZ2h0IGEgYg==', 'c3BsaXQ=', 'S19ERUZBVUxU', 'R19ERUZBVUxU', 'YXNzaWduSw==', 'YXNzaWduRw==', 'cGFk', 'Z2V0R2FtZXBhZHM=', 'YW5hbG9n', 'YXhlcw==', 'YnV0dG9u', 'YnV0dG9ucw==', 'cHJlc3NlZA==', 'aW5wdXRz', 'bW92', 'c3Bpbg==', 'bnh0TW92', 'bnh0U3Bpbg==', 'bG1i', 'cm1i', 'bW1i', 'd2hlZWxEZWx0YQ==', 'ZGV0YWls', 'a2V5cw==', 'a2V5Q29kZQ==', 'a2V5', 'dG91Y2hlcw==', 'aWRlbnRpZmllcg==', 'Y2xpZW50WA==', 'Y2xpZW50WQ==', 'cG9w', 'cmVtb3ZlRXZlbnRMaXN0ZW5lcg==', 'dGV4dHVyZQ==', 'Y2FjaGU=', 'c3Jj', 'dG9Mb3dlckNhc2U=', 'cG5n', 'bG9hZFRleHR1cmU=', 'Z2lm', 'RmFpbGVkIHRvIGxvYWQgcmVzb3VyY2Ugd2l0aCB1bmtub3duIGV4dGVuc2lvbjog', 'b25sb2Fk', 'Z2V0VGV4dHVyZQ==', 'TU9WRV9NVUxU', 'Wk9PTV9NVUxU', 'Wk9PTV9NQVg=', 'Wk9PTV9NSU4=', 'bW92ZQ==', 'em9vbQ==', 'dW5wcm9qZWN0', 'Y2FudmFz', 'cGF0aA==', 'YXVkaW8v', 'cmVzcG9uc2VUeXBl', 'ZGVjb2RlQXVkaW9EYXRh', 'cmVzcG9uc2U=', 'b25FcnJvcg==', 'Y29udGV4dA==', 'cGxheWluZw==', 'cGxheWVk', 'QXR0ZW1wdGVkIHRvIGluc3RhbmNlIHBhcnRpYWxseSBsb2FkZWQgc291bmQgZGF0YTogJw==', 'c291cmNl', 'Y3JlYXRlQnVmZmVyU291cmNl', 'b25lbmRlZA==', 'cGxheWJhY2tSYXRl', 'Z2Fpbg==', 'Y3JlYXRlR2Fpbg==', 'dm9sdW1l', 'QXR0ZW1wdGVkIHRvIHJlcGxheSBzb3VuZCBpbnN0YW5jZTogJw==', 'cGFubmVy', 'Y3JlYXRlUGFubmVy', 'cGFubmluZ01vZGVs', 'SFJURg==', 'ZGlzdGFuY2VNb2RlbA==', 'bGluZWFy', 'cmVmRGlzdGFuY2U=', 'RkFMTE9GRl9NSU4=', 'bWF4RGlzdGFuY2U=', 'RkFMTE9GRl9NQVg=', 'cm9sbG9mZkZhY3Rvcg==', 'Y29uZUlubmVyQW5nbGU=', 'Y29uZU91dGVyQW5nbGU=', 'Y29uZU91dGVyR2Fpbg==', 'c2V0UG9zaXRpb24=', 'c2V0T3JpZW50YXRpb24=', 'cG9zaXRpb25Y', 'cG9zaXRpb25Z', 'cG9zaXRpb25a', 'aW5pdFdlYkF1ZGlv', 'aW5pdEZhbGxiYWNr', 'bXV0ZU11c2lj', 'bXVzaWM=', 'bXV0ZVNvdW5k', 'QXVkaW9Db250ZXh0', 'd2Via2l0QXVkaW9Db250ZXh0', 'V2ViQXVkaW8gbm90IHN1cHBvcnRlZC4gSW50aWFsaXppbmcgZmFsbGJhY2sgbW9kZS4uLg==', 'c2Z4L2FsZXJ0LndhdiBzZngvYnJlYWsud2F2IHNmeC9icmVhdGgud2F2IHNmeC9idW1wLndhdiBzZngvY29pbi53YXYgc2Z4L2ZpcmViYWxsLndhdiBzZngvZmlyZXdvcmsud2F2IHNmeC9mbGFncG9sZS53YXYgc2Z4L2l0ZW0ud2F2IHNmeC9qdW1wMC53YXYgc2Z4L2p1bXAxLndhdiBzZngva2ljay53YXYgc2Z4L2xpZmUud2F2IHNmeC9waXBlLndhdiBzZngvcG93ZXJ1cC53YXYgc2Z4L3N0b21wLndhdiBzZngvdmluZS53YXYgbXVzaWMvbWFpbjAubXAzIG11c2ljL21haW4xLm1wMyBtdXNpYy9tYWluMi5tcDMgbXVzaWMvbWFpbjMubXAzIG11c2ljL2xldmVsLm1wMyBtdXNpYy9jYXN0bGUubXAzIG11c2ljL3ZpY3RvcnkubXAzIG11c2ljL3N0YXIubXAzIG11c2ljL2RlYWQubXAzIG11c2ljL2dhbWVvdmVyLm1wMw==', 'Y3JlYXRlQXVkaW8=', 'bWFzdGVyVm9sdW1l', 'ZGVzdGluYXRpb24=', 'ZWZmZWN0Vm9sdW1l', 'bXVzaWNWb2x1bWU=', 'bGlzdGVuZXI=', 'dXBkYXRlVm9sdW1l', 'Y2FtZXJh', 'Zm9yd2FyZFg=', 'Zm9yd2FyZFk=', 'Zm9yd2FyZFo=', 'dXBY', 'dXBZ', 'dXBa', 'ZW1hbnJ1b3k=', 'c2F2ZVNldHRpbmdz', 'c2V0TXVzaWM=', 'Z2V0QXVkaW8=', 'c3RvcE11c2lj', 'Y3JlYXRlQ3VzdG9tQXVkaW8=', 'RmFpbGVkIHRvIGxvYWQgc291bmQ6ICc=', 'ZGVmYXVsdC53YXY=', 'bXVsdGkvZGVmYXVsdC53YXY=', 'Y2F0Y2g=', 'RXJyb3IgY2xvc2luZyBhdWRpbyBjb250ZXh0Lg==', 'Y29sbGlkZVRlc3Q=', 'cmV5YWxQdGVn', 'ZGVlcFNldm9t', 'Z25pcG11ag==', 'c2V2aWw=', 'cmVtaVRlZ2FtYWQ=', 'cmVtaVRyYXRz', 'cmV3b3A=', 'ZXRhcg==', 'b25IaXQ=', 'c2Npc3locA==', 'b25Db2xsaWRl', 'Z2V0Q29udGV4dA==', 'cmVzb3VyY2U=', 'Y2xlYXI=', 'Y2xpZW50V2lkdGg=', 'Y2xpZW50SGVpZ2h0', 'Y2xlYXJSZWN0', 'bW96SW1hZ2VTbW9vdGhpbmdFbmFibGVk', 'd2Via2l0SW1hZ2VTbW9vdGhpbmdFbmFibGVk', 'bXNJbWFnZVNtb290aGluZ0VuYWJsZWQ=', 'aW1hZ2VTbW9vdGhpbmdFbmFibGVk', 'ZmlsbFN0eWxl', 'ZmlsbFJlY3Q=', 'c2F2ZQ==', 'dHJhbnNsYXRl', 'ZHJhd01hcA==', 'ZHJhd09iamVjdA==', 'ZHJhd0VmZmVjdA==', 'cmVzdG9yZQ==', 'ZHJhd1RvdWNo', 'ZHJhd1VJ', 'ZHJhd0xvYWQ=', 'ZGVwdGg=', 'aW5kZXg=', 'ZHJhd0ltYWdl', 'bW9kZQ==', 'Z2xvYmFsQWxwaGE=', 'ZnJhbWU=', 'Z2xvYmFsQ29tcG9zaXRlT3BlcmF0aW9u', 'bGlnaHRlcg==', 'Zm9udA==', 'cHggU21iV2Vi', 'dGV4dEFsaWdu', 'Y2VudGVy', 'ZmlsbFRleHQ=', 'Z2V0RWZmZWN0cw==', 'dGV4', 'aW5k', 'cm90YXRl', 'Z2V0UGxheWVySW5mbw==', 'bGV2ZWxXYXJwSWQ=', 'c3RhcnREZWx0YQ==', 'Z2V0SW5pdGlhbExldmVs', 'Z2FtZU92ZXI=', 'YmxhY2s=', 'd2hpdGU=', 'MzJweCBTbWJXZWI=', 'R0FNRSBPVkVS', 'c3RhcnRUaW1lcg==', 'MjRweCBTbWJXZWI=', 'R0FNRSBTVEFSVFMgSU46IA==', 'dmljdG9yeQ==', 'VklDVE9SWSBST1lBTEUgIw==', 'VE9PIEJBRCAj', 'bGVmdA==', 'SU5GUklOR0lP', 'Y29pbnM=', 'bWVhc3VyZVRleHQ=', 'bGl2ZXM=', 'cmVtYWlu', 'IFBMQVlFUlMgUkVNQUlO', 'cGxheWVycw==', 'dG91Y2hNb2Rl', 'IC8gNzUgUExBWUVSUw==', 'dGh1bWJPcmlnaW4=', 'cmdiYSgwLDAsMCwwLjUp', 'cmdiYSgyNTUsMjU1LDI1NSwxLjAp', 'dGh1bWJQb3M=', 'dG91Y2hSdW4=', 'NjVweCBTbWJXZWI=', 'TG9hZGluZyBSZXNvdXJjZXMuLi4=', 'aW5pdGlhbA==', 'bGV2ZWxz', 'Z2V0SW5pdGlhbFpvbmU=', 'em9uZXM=', 'Z2V0SW5pdGlhbA==', 'YnVtcGVk', 'ZWZmZWN0cw==', 'dmluZXM=', 'c2Z4L2J1bXAud2F2', 'c2Z4L2JyZWFrLndhdg==', 'Y2VpbA==', 'Z2FtZS1jYW52YXM=', 'bGFzdERyYXc=', 'dG91Y2hGdWxs', 'dGh1bWJJZA==', 'dmljdG9yeU11c2lj', 'Z2FtZU92ZXJUaW1lcg==', 'bGV2ZWxXYXJwVGltZXI=', 'ZnJhbWVSZXE=', 'bG9vcFJlcQ==', 'VElDS19SQVRF', 'RkRMQ19UQVJHRVQ=', 'RkRMQ19NQVg=', 'TEVWRUxfV0FSUF9USU1F', 'R0FNRV9PVkVSX1RJTUU=', 'Q09JTlNfVE9fTElGRQ==', 'cGFyYW0=', 'ZzEy', 'dXBkYXRlUGxheWVyTGlzdA==', 'ZzEz', 'Z2FtZVN0YXJ0VGltZXI=', 'dXBkYXRlVGVhbQ==', 'c2Z4L2FsZXJ0Lndhdg==', 'ZG9TdGFydA==', 'Z2V0R2hvc3Q=', 'dXBkYXRlUGFja2V0', 'ZG9VcGRhdGU=', 'c2hpZnQ=', 'ZGVzaWduYXRpb24=', 'ZG9ORVQwMDE=', 'ZG9ORVQwMTA=', 'ZG9ORVQwMTE=', 'ZG9ORVQwMTI=', 'ZG9ORVQwMTM=', 'ZG9ORVQwMTc=', 'ZG9ORVQwMTg=', 'ZG9ORVQwMjA=', 'ZG9ORVQwMzA=', 'Z2V0UmVtYWlu', 'cmVzdWx0', 'ZXh0cmE=', 'Z2V0T2JqZWN0', 'ZG9TcGF3bg==', 'ZG9EZXRlcm1pbmU=', 'ZG9Ub3VjaA==', 'ZG9JbnB1dA==', 'ZG9jdW1lbnRFbGVtZW50', 'cmVxdWVzdEZ1bGxzY3JlZW4=', 'bW96UmVxdWVzdEZ1bGxTY3JlZW4=', 'd2Via2l0UmVxdWVzdEZ1bGxzY3JlZW4=', 'bXNSZXF1ZXN0RnVsbHNjcmVlbg==', 'cHJlc3M=', 'Y2xpY2s=', 'aW54Mjc=', 'ZG93bg==', 'cmlnaHQ=', 'YnRu', 'ZG9TdGVw', 'ZG9NdXNpYw==', 'bXVzaWMvZ2FtZW92ZXIubXAz', 'bXVzaWMvZGVhZC5tcDM=', 'bXVzaWMvbGV2ZWwubXAz', 'bXVzaWMvY2FzdGxlLm1wMw==', 'bXVzaWMvdmljdG9yeS5tcDM=', 'ZG9QdXNo', 'YmluZA==', 'YXBwbHk=', 'bGFzdFpvbmU=', 'c2Z4L2NvaW4ud2F2', 'c2Z4L2xpZmUud2F2', 'bG9iYnlUaW1lcg==', 'aW5pdA==', 'L3JveWFsZS9zdGF0dXM=', 'YWN0aXZl', 'QW4gdW5rbm93biBlcnJvciBvY2N1cmVkIHdoaWxlIGNvbm5lY3RpbmcgdG8gdGhlIGdhbWUgc2VydmVyLi4u', 'U3RhdGUgZXJyb3IuIEdhbWUgYWxyZWFkeSBsb2FkZWQu', 'bG9iYnk=', 'amFpbA==', 'Q3JpdGljYWwgZXJyb3IhIEdhbWUgZmlsZSBtaXNzaW5nIHR5cGUh', 'QW4gZXJyb3Igb2NjdXJlZCB3aGlsZSBzdGFydGluZyBnYW1lLi4u', 'cmVsb2Fk', 'bm9ybWFsaXpl', 'cmFuZG9t', 'c3FydA==', 'bWFnbml0dWRl', 'c3VidHJhY3Q=', 'YWRk', 'c2NhbGU=', 'Y29z', 'c2lu', 'ZG90', 'YWNvcw==', 'Y3JlYXRl', 'bGVuZ3Ro', 'bWFrZQ==', 'Y29weQ==', 'bXVsdGlwbHk=', 'bGVycA==', 'dG9BcnJheQ==', 'bGluZTI=', 'aW50ZXJzZWN0aW9u', 'dGltZQ==', 'c3ByaXRl', 'bm9ybWFs', 'cG9pbnRSZWN0YW5nbGU=', 'cG9pbnRQb2x5', 'bGluZUxpbmU=', 'ZGlzdGFuY2U=', 'bGluZUNpcmNsZQ==', 'bGluZU5lYXJlc3RQb2ludA==', 'ZXF1YWxz', 'cG9seWdvbkxpbmU=', 'cHVzaA==', 'cG9seWdvbkNpcmNsZQ==', 'bm93', 'Z2V0U3ByaXRl', 'd2lkdGg=', 'aGVpZ2h0', 'VEVYUkVT', 'Zmxvb3I=', 'cmVxdWVzdEFuaW1hdGlvbkZyYW1l', 'd2Via2l0UmVxdWVzdEFuaW1hdGlvbkZyYW1l', 'bW96UmVxdWVzdEFuaW1hdGlvbkZyYW1l', 'b1JlcXVlc3RBbmltYXRpb25GcmFtZQ==', 'bXNSZXF1ZXN0QW5pbWF0aW9uRnJhbWU=', 'c2V0VGltZW91dA==', 'Y2FuY2VsQW5pbWF0aW9uRnJhbWU=', 'd2Via2l0Q2FuY2VsUmVxdWVzdEFuaW1hdGlvbkZyYW1l', 'bW96Q2FuY2VsUmVxdWVzdEFuaW1hdGlvbkZyYW1l', 'b0NhbmNlbFJlcXVlc3RBbmltYXRpb25GcmFtZQ==', 'bXNDYW5jZWxSZXF1ZXN0QW5pbWF0aW9uRnJhbWU=', 'dXNlIHN0cmljdA==', 'ZW5jb2Rl', 'ZGVjb2RlMTY=', 'ZGVjb2Rl', 'YnVtcA==', 'ZGF0YQ==', 'YXNBcnJheQ==', 'VFJJR0dFUg==', 'R0VOX0ZVTkM=', 'VFlQRQ==', 'VE9VQ0g=', 'RE9XTg==', 'UFVTSA==', 'U01BTExfQlVNUA==', 'QklHX0JVTVA=', 'QlVNUA==', 'd29ybGQ=', 'Z2V0Wm9uZQ==', 'b2JqZWN0cw==', 'ZGVhZA==', 'bGV2ZWw=', 'em9uZQ==', 'ZGlt', 'cG9z', 'Ym91bmNl', 'Ym9uaw==', 'cGlk', 'cGxheWVyQ29sbGlkZQ==', 'Z2V0UGxheWVy', 'Y29pbg==', 'QlJFQUs=', 'YnJlYWs=', 'VElMRV9QUk9QRVJUSUVT', 'QUlS', 'U09MSUQgU1RBTkRBUkQ=', 'U09MSUQgQlVNUEFCTEU=', 'b3V0', 'U09MSUQgQlJFQUtBQkxFIE5PUk1BTA==', 'SVRFTSBCTE9DSyBTVEFOREFSRA==', 'cmVwbGFjZQ==', 'Y3JlYXRlT2JqZWN0', 'cGxheQ==', 'c2Z4L2l0ZW0ud2F2', 'Q09JTiBCTE9DSyBTVEFOREFSRA==', 'Y29pbmFnZQ==', 'Q09JTiBCTE9DSyBNVUxUSQ==', 'dGlsZQ==', 'VklORSBCTE9DSw==', 'Z3Jvdw==', 'c2Z4L3ZpbmUud2F2', 'SVRFTSBCTE9DSyBJTlZJU0lCTEU=', 'Q09JTiBCTE9DSyBJTlZJU0lCTEU=', 'V0FSUCBUSUxF', 'd2FycA==', 'V0FSUCBQSVBFIFNMT1c=', 'Z2V0VGlsZQ==', 'ZGVmaW5pdGlvbg==', 'YWJz', 'cGlwZQ==', 'V0FSUCBQSVBFIFJJR0hUIFNMT1c=', 'V0FSUCBQSVBFIEZBU1Q=', 'V0FSUCBQSVBFIFJJR0hUIEZBU1Q=', 'TEVWRUwgRU5EIFdBUlA=', 'bGV2ZWxXYXJw', 'RkxBR1BPTEU=', 'cG9sZQ==', 'VklORQ==', 'dmluZQ==', 'Vk9URSBCTE9DSw==', 'c2VuZA==', 'ZzUw', 'REVTSUdOQVRJT04=', 'YnVmZmVy', 'Z2V0RmxvYXQzMg==', 'RXJyb3IgZGVjb2RpbmcgYmluYXJ5IGRhdGEh', 'aW5zaWRl', 'Ym9keQ==', 'Z2V0RWxlbWVudEJ5SWQ=', 'aGlzdG9yeQ==', 'cHVzaFN0YXRl', 'aW5kZXguaHRtbA==', 'SW5mcmluZ2UgUm95YWxl', 'd2Fybg==', 'ZXJyb3I=', 'bG9hZA==', 'ZGlzY2xhaW0=', 'bWFpbg==', 'bmFtZQ==', 'Z2FtZQ==', 'bWVudXM=', 'b2Jq', 'bGFzdE5hdg==', 'b25wb3BzdGF0ZQ==', 'b25CYWNr', 'c3RhdGU=', 'cGFnZVRpdGxl', 'Y29udGVudA==', 'aW5uZXJIVE1M', 'aHRtbA==', 'dGl0bGU=', 'YmFjaw==', 'aGlkZUFsbA==', 'YmFja2dyb3VuZA==', 'c3R5bGU=', 'ZGlzcGxheQ==', 'YmxvY2s=', 'cHJvdG90eXBl', 'aGlkZQ==', 'Ymlk', 'YmFja2dyb3VuZC1i', 'YmFja2dyb3VuZC1j', 'YmFja2dyb3VuZC1h', 'Y2xhc3NMaXN0', 'cmVtb3Zl', 'bmF2aWdhdGlvbg==', 'cmVwbGFjZVN0YXRl', 'ZWxlbWVudA==', 'dGltZW91dA==', 'c2hvdw==', 'PGltZyBzcmM9J2ltZy9ob21lL3dhcm4ucG5nJyBjbGFzcz0nd2Fybi1pY28nLz4g', 'IyNXQVJOIyMg', 'bm9uZQ==', 'ZXJyb3ItbWVzc2FnZQ==', 'bmV0', 'Y2xvc2U=', 'bWVudQ==', 'IyNFUlJPUiMjIA==', 'IyNUUkFDRSMjIA==', 'bGlua0VsZW1lbnQ=', 'bGluaw==', 'd2luRWxlbWVudA==', 'd2lu', 'bGF1bmNoQnRu', 'bWFpbi1sYXVuY2g=', 'bnVtYmVy', 'bWFpbi1udW1iZXI=', 'b25jbGljaw==', 'bGF1bmNo', 'Z2V0', 'ZXBpY19nYW1lcl9tb21lbnRz', 'aGVhdGVkX2dhbWVyX21vbWVudHM=', 'V2luczog', 'IDxzcGFuIGNsYXNzPSdraWxsJz5LaWxsczog', 'PC9zcGFuPg==', 'bmFtZUlucHV0', 'bmFtZS1pbnB1dA==', 'dGVhbUlucHV0', 'dGVhbS1pbnB1dA==', 'bmFtZS1sYXVuY2g=', 'c2V0', 'dmFsdWU=', 'dGVhbQ==', 'am9pbg==', 'Y29ubmVjdGVk', 'd2ViU29ja2V0', 'cmVhZHlTdGF0ZQ==', 'Q0xPU0VE', 'Y29ubmVjdA==', 'bG9jYXRpb24=', 'aG9zdA==', 'cHJlZk5hbWU=', 'cHJlZlRlYW0=', 'Q29ubmVjdGlvbiBhbHJlYWR5IG9wZW4uIFN0YXRlIGVycm9yLg==', 'd3M6Ly8=', 'L3JveWFsZS93cw==', 'YmluYXJ5VHlwZQ==', 'YXJyYXlidWZmZXI=', 'b25vcGVu', 'b3Blbg==', 'dHlwZQ==', 'RXJyb3IuIFdTIG9wZW4gZXZlbnQgaGFzIHVuZXhwZWN0ZWQgcmVzdWx0Lg==', 'b25tZXNzYWdl', 'aGFuZGxlQmluYXJ5', 'aGFuZGxlUGFja2V0', 'cGFyc2U=', 'b25jbG9zZQ==', 'Q29ubmVjdGlvbiBJbnRlcnJ1cHRlZA==', 'czAw', 'c2V0U3RhdGU=', 'czAx', 'aGFuZGxlQmxvYg==', 'cGFja2V0cw==', 'czAy', 'eDAw', 'U2VydmVyIEV4Y2VwdGlvbg==', 'bWVzc2FnZQ==', 'eDAx', 'dHJhY2U=', 'UmVjaWV2ZWQgaW52YWxpZCBwYWNrZXQgdHlwZTog', 'c3RyaW5naWZ5', 'ZGVzdHJveQ==', 'UmVjZWl2ZWQgaW52YWxpZCBzdGF0ZSBJRDog', 'cmVhZHk=', 'c2VuZEJpbmFyeQ==', 'aW5nYW1l', 'bDAx', 'bG9nZ2VkSW4=', 'UmVjaWV2ZWQgdW5leHBlY3RlZCBiaW5hcnkgZGF0YSE=', 'bDAw', 'c2lk', 'bG9n', 'TG9nZ2VkIGluOiA=', 'IDo6IA==', 'IC8vIA==', 'cGluZ091dA==', 'cGluZ0xhc3Q=', 'cGluZ0ZyYW1l', 'ZzAx', 'ZzA2', 'Z2xvYmFsV2Fybg==', 'ZzIx', 'cmVjaWV2ZVBpbmc=', 'ZzAw', 'YWpheA==', 'aHR0cDovLw==', 'L3JveWFsZS9nYW1lLw==', 'R0VU', 'ZzAz', 'U2VydmVyIHJldHVybmVkIEZORig0MDQpIGZvciBnYW1lIGZpbGU6IA==', 'c2VuZFBpbmc=', 'cGluZw==', 'ZGVsdGE=', 'Z2FyYmFnZQ==', 'cmV2ZXJzZQ==', 'c291bmRz', 'QVNZTkM=', 'dXBkYXRl', 'c3RlcA==', 'c291bmQ=', 'ZG9uZQ==', 'c3BsaWNl', 'cG9zaXRpb24=', 'a2lsbA==', 'aXNUYW5naWJsZQ==', 'ZGlzYWJsZWQ=', 'ZHJhdw==', 'YXVkaW8=', 'Z2V0U3BhdGlhbEF1ZGlv', 'ZWZmZWN0', 'T0JKRUNUX0xJU1Q=', 'UkVHSVNURVJfT0JKRUNU', 'T0JKRUNU', 'SW52YWxpZCBPYmplY3QgQ2xhc3MgSUQ6IA==', 'Y2FsbA==', 'YW5pbQ==', 'ZGVhZFRpbWVy', 'ZGVhZEZyZWV6ZVRpbWVy', 'YXJyb3dGYWRl', 'bGFzdFBvcw==', 'ZmFsbFNwZWVk', 'bW92ZVNwZWVk', 'anVtcGluZw==', 'Z3JvdW5kZWQ=', 'aXNTcHJpbmc=', 'aXNCb3VuY2U=', 'c3RhclRpbWVy', 'cG93ZXI=', 'c3Rhck11c2lj', 'dGZtVGltZXI=', 'ZGFtYWdlVGltZXI=', 'dGZtVGFyZ2V0', 'cGlwZVdhcnA=', 'cGlwZVRpbWVy', 'cGlwZUV4dA==', 'cGlwZURpcg==', 'cG9sZVRpbWVy', 'cGlwZURlbGF5TGVuZ3Ro', 'cGlwZURlbGF5', 'cG9sZVNvdW5k', 'cG9sZVdhaXQ=', 'dmluZVdhcnA=', 'YXR0YWNrQ2hhcmdl', 'TUFYX0NIQVJHRQ==', 'YXR0YWNrVGltZXI=', 'YXV0b1RhcmdldA==', 'YnRuRA==', 'YnRuQmRl', 'YnRuQmc=', 'YnRuQg==', 'YnRuQQ==', 'U05BTUU=', 'U1RBTkQ=', 'TkFNRQ==', 'UExBWUVS', 'QU5JTUFUSU9OX1JBVEU=', 'RElNX09GRlNFVA==', 'REVBRF9GUkVFWkVfVElNRQ==', 'REVBRF9USU1F', 'REVBRF9VUF9GT1JDRQ==', 'UlVOX1NQRUVEX01BWA==', 'TU9WRV9TUEVFRF9NQVg=', 'TU9WRV9TUEVFRF9BQ0NFTA==', 'TU9WRV9TUEVFRF9ERUNFTA==', 'TU9WRV9TUEVFRF9BQ0NFTF9BSVI=', 'U1RVQ0tfU0xJREVfU1BFRUQ=', 'RkFMTF9TUEVFRF9NQVg=', 'RkFMTF9TUEVFRF9BQ0NFTA==', 'Qk9VTkNFX0xFTkdUSF9NSU4=', 'U1BSSU5HX0xFTkdUSF9NSU4=', 'U1BSSU5HX0xFTkdUSF9NQVg=', 'SlVNUF9MRU5HVEhfTUlO', 'SlVNUF9MRU5HVEhfTUFY', 'SlVNUF9TUEVFRF9JTkNfVEhSRVNIT0xE', 'SlVNUF9ERUNFTA==', 'QkxPQ0tfQlVNUF9USFJFU0hPTEQ=', 'UE9XRVJfSU5ERVhfU0laRQ==', 'R0VORVJJQ19JTkRFWA==', 'REFNQUdFX1RJTUU=', 'VFJBTlNGT1JNX1RJTUU=', 'VFJBTlNGT1JNX0FOSU1BVElPTl9SQVRF', 'U1RBUl9MRU5HVEg=', 'UFJPSl9PRkZTRVQ=', 'QVRUQUNLX0RFTEFZ', 'QVRUQUNLX0NIQVJHRQ==', 'QVRUQUNLX0FOSU1fTEVOR1RI', 'UElQRV9USU1F', 'UElQRV9TUEVFRA==', 'UElQRV9FWFRfT0ZGU0VU', 'V0VFRF9FQVRfUkFESVVT', 'UE9MRV9ERUxBWQ==', 'UE9MRV9TTElERV9TUEVFRA==', 'TEVWRUxfRU5EX01PVkVfT0ZG', 'Q0xJTUJfU1BFRUQ=', 'UExBVEZPUk1fU05BUF9ESVNU', 'QVJST1dfU1BSSVRF', 'QVJST1dfVEVYVA==', 'WU9V', 'QVJST1dfT0ZGU0VU', 'VEVYVF9PRkZTRVQ=', 'VEVYVF9TSVpF', 'VEVYVF9DT0xPUg==', 'I0ZGRkZGRg==', 'QVJST1dfUkFEX0lO', 'QVJST1dfUkFEX09VVA==', 'QVJST1dfVEhSRVNIT0xEX01JTg==', 'QVJST1dfVEhSRVNIT0xEX01BWA==', 'VEVBTV9PRkZTRVQ=', 'VEVBTV9TSVpF', 'VEVBTV9DT0xPUg==', 'cmdiYSgyNTUsMjU1LDI1NSwwLjc1KQ==', 'U1BSSVRF', 'U1BSSVRFX0xJU1Q=', 'U19TVEFORA==', 'U19SVU4w', 'U19SVU4x', 'U19SVU4y', 'U19TTElERQ==', 'U19GQUxM', 'U19DTElNQjA=', 'U19DTElNQjE=', 'Ql9TVEFORA==', 'Ql9ET1dO', 'Ql9SVU4w', 'Ql9SVU4x', 'Ql9SVU4y', 'Ql9TTElERQ==', 'Ql9GQUxM', 'Ql9DTElNQjA=', 'Ql9DTElNQjE=', 'Ql9UUkFOU0ZPUk0=', 'Rl9TVEFORA==', 'Rl9ET1dO', 'Rl9SVU4w', 'Rl9SVU4x', 'Rl9SVU4y', 'Rl9TTElERQ==', 'Rl9GQUxM', 'Rl9DTElNQjA=', 'Rl9DTElNQjE=', 'Rl9BVFRBQ0s=', 'Rl9UUkFOU0ZPUk0=', 'R19ERUFE', 'R19ISURF', 'UlVO', 'U0xJREU=', 'RkFMTA==', 'UE9MRQ==', 'Q0xJTUI=', 'QVRUQUNL', 'VFJBTlNGT1JN', 'REVBRA==', 'SElERQ==', 'R0hPU1Q=', 'REVBREdIT1NU', 'U1RBVEU=', 'dHJpZ2dlcg==', 'YXR0YWNr', 'c3Rhcg==', 'c3RvcA==', 'aXNTdGF0ZQ==', 'c2Z4L2ZsYWdwb2xlLndhdg==', 'Z2V0VGlsZXM=', 'Q09MTElERQ==', 'Z2V0RmxhZw==', 'bWF4', 'ZGltZW5zaW9ucw==', 'Z2V0U3RhdGVCeVBvd2VySW5kZXg=', 'Y29sbGlzaW9uVGVzdA==', 'c2Z4L3BpcGUud2F2', 'd2VlZGVhdA==', 'YXV0b01vdmU=', 'Y29udHJvbA==', 'cGh5c2ljcw==', 'aW50ZXJhY3Rpb24=', 'YXJyb3c=', 'aW5wdXQ=', 'RElN', 'c2lnbg==', 'bWlu', 'c2Z4L2p1bXAxLndhdg==', 'c2Z4L2p1bXAwLndhdg==', 'Z2V0UGxhdGZvcm1z', 'SElEREVO', 'cmlkaW5n', 'b2lk', 'ZGFtYWdl', 'cGxheWVyU3RvbXA=', 'cGxheWVyQnVtcA==', 'c2Z4L2ZpcmViYWxsLndhdg==', 'dGZt', 'aW52dWxu', 'cG93ZXJ1cA==', 'cmF0ZQ==', 'bGlmZWFnZQ==', 'YXhl', 'Z2V0VGV4dA==', 'dG9TdHJpbmc=', 'dG9vIGJhZA==', 'bXVzaWMvc3Rhci5tcDM=', 'bG9vcA==', 'c2Z4L3Bvd2VydXAud2F2', 'Z2V0TGV2ZWw=', 'Z2V0V2FycA==', 'SU5ERVg=', 'd3JpdGU=', 'cmdiYSgyNTUsMjU1LDI1NSw=', 'dmFyaWFudA==', 'Ym9ua1RpbWVy', 'ZGlzYWJsZWRUaW1lcg==', 'cHJveEhpdA==', 'ZGly', 'ZGlzYWJsZQ==', 'R09PTUJB', 'VkFSSUFOVF9PRkZTRVQ=', 'RU5BQkxFX0ZBREVfVElNRQ==', 'RU5BQkxFX0RJU1Q=', 'Qk9OS19USU1F', 'Qk9OS19JTVA=', 'Qk9OS19ERUNFTA==', 'Qk9OS19GQUxMX1NQRUVE', 'UlVOMA==', 'UlVOMQ==', 'U1RBVEVfTElTVA==', 'Qk9OSw==', 'ZW5hYmxl', 'cHJveGltaXR5', 'c2Z4L2tpY2sud2F2', 'c2Z4L3N0b21wLndhdg==', 'RkxZ', 'anVtcA==', 'aW1tdW5lVGltZXI=', 'S09PUEE=', 'UExBWUVSX0lNTVVORV9USU1F', 'U0hFTExfTU9WRV9TUEVFRF9NQVg=', 'VFJBTlNGT1JNX1RIUkVTSE9MRA==', 'RkxZMA==', 'RkxZMQ==', 'U0hFTEw=', 'U1BJTg==', 'c3RvbXBlZA==', 'dHJhbnNmb3JtVGltZXI=', 'bG9j', 'RkxZX0RJU1RBTkNF', 'cmV2', 'S09PUEEgVFJPT1BB', 'RkxZX0FDQ0VM', 'RkxZX1NQRUVEX01BWA==', 'Q0hFQ0tfRElTVA==', 'Y2hlY2tHcm91bmQ=', 'SURMRQ==', 'VU5TUEVMTEFCTEUgUExBTlQ=', 'U09GRlNFVA==', 'V0FJVF9USU1F', 'VFJBVkVMX1NQRUVE', 'SURMRTA=', 'SURMRTE=', 'd2FpdFRpbWVy', 'ZGVsYXk=', 'REVMQVlfREVGQVVMVA==', 'aW1wdWxzZQ==', 'ZGVsYXlUaW1lcg==', 'RkxZSU5HIEZJU0g=', 'Qk9OS19GQUxMX0FDQ0VM', 'SU1QVUxTRQ==', 'RFJBRw==', 'aGFtbWVy', 'TU9WRV9BUkVB', 'Z3JvdW5kVGltZXI=', 'ZG91Ymxl', 'YXR0YWNrQW5pbVRpbWVy', 'anVtcFRpbWVy', 'SEFNTUVSIEJSTw==', 'SlVNUF9ERUxBWQ==', 'SlVNUF9MRU5HVEg=', 'RE9VQkxFX1JBVEU=', 'ZmFjZQ==', 'YXR0YWNo', 'aGVhbHRo', 'SEVBTFRI', 'Qk9XU0VS', 'QVRUQUNLMA==', 'QVRUQUNLMQ==', 'c2Z4L2JyZWF0aC53YXY=', 'c3BlZWQ=', 'cmlkZXJz', 'UExBVEZPUk0=', 'QlVTIFBMQVRGT1JN', 'c3RhcnQ=', 'RVhURU5E', 'U1BSSU5H', 'VEhSRVNIT0xE', 'UE9XRVI=', 'U1RBR0Uw', 'U1RBR0Ux', 'U1RBR0Uy', 'SEFMRg==', 'Q09NUFJFU1M=', 'cG93', 'RkxBRw==', 'T0ZGU0VU', 'U1BJTl9SQVRF', 'c2l6ZQ==', 'UEFSVFM=', 'RklSRSBUUkFQ', 'U1BBQ0lORw==', 'SURMRTI=', 'SURMRTM=', 'cm90', 'RklSRSBCTEFTVA==', 'Ymxhc3Q=', 'ZmlyZVRpbWVy', 'RklSRV9ERUxBWV9ERUZBVUxU', 'TEFVTkNIRVI=', 'ZmlyZQ==', 'c2Z4L2ZpcmV3b3JrLndhdg==', 'QlVMTEVU', 'U1BFRUQ=', 'b3duZXI='];
  2. (function(_0x1fb84b, _0x4097d9) {
  3. var _0x455352 = function(_0x5671b3) {
  4. while (--_0x5671b3) {
  5. _0x1fb84b['push'](_0x1fb84b['shift']());
  6. }
  7. };
  8. var _0x1faba7 = function() {
  9. var _0x165091 = {
  10. 'data': {
  11. 'key': 'cookie',
  12. 'value': 'timeout'
  13. },
  14. 'setCookie': function(_0x49cd97, _0x1874c7, _0x27cc62, _0x4037d0) {
  15. _0x4037d0 = _0x4037d0 || {};
  16. var _0x1edd0b = _0x1874c7 + '=' + _0x27cc62;
  17. var _0x4fab65 = 0;
  18. for (var _0x4fab65 = 0, _0x26349e = _0x49cd97['length']; _0x4fab65 < _0x26349e; _0x4fab65++) {
  19. var _0x1644df = _0x49cd97[_0x4fab65];
  20. _0x1edd0b += ';\x20' + _0x1644df;
  21. var _0x428458 = _0x49cd97[_0x1644df];
  22. _0x49cd97['push'](_0x428458);
  23. _0x26349e = _0x49cd97['length'];
  24. if (_0x428458 !== !![]) {
  25. _0x1edd0b += '=' + _0x428458;
  26. }
  27. }
  28. _0x4037d0['cookie'] = _0x1edd0b;
  29. },
  30. 'removeCookie': function() {
  31. return 'dev';
  32. },
  33. 'getCookie': function(_0x1c3295, _0x4ef71c) {
  34. _0x1c3295 = _0x1c3295 || function(_0x4cb227) {
  35. return _0x4cb227;
  36. };
  37. var _0x2b5f2d = _0x1c3295(new RegExp('(?:^|;\x20)' + _0x4ef71c['replace'](/([.$?*|{}()[]\/+^])/g, '$1') + '=([^;]*)'));
  38. var _0x53493e = function(_0x3e1d20, _0x31c9c2) {
  39. _0x3e1d20(++_0x31c9c2);
  40. };
  41. _0x53493e(_0x455352, _0x4097d9);
  42. return _0x2b5f2d ? decodeURIComponent(_0x2b5f2d[1]) : undefined;
  43. }
  44. };
  45. var _0x38dc14 = function() {
  46. var _0x1928e8 = new RegExp('\x5cw+\x20*\x5c(\x5c)\x20*{\x5cw+\x20*[\x27|\x22].+[\x27|\x22];?\x20*}');
  47. return _0x1928e8['test'](_0x165091['removeCookie']['toString']());
  48. };
  49. _0x165091['updateCookie'] = _0x38dc14;
  50. var _0x2d84a9 = '';
  51. var _0x4eea55 = _0x165091['updateCookie']();
  52. if (!_0x4eea55) {
  53. _0x165091['setCookie'](['*'], 'counter', 1);
  54. } else if (_0x4eea55) {
  55. _0x2d84a9 = _0x165091['getCookie'](null, 'counter');
  56. } else {
  57. _0x165091['removeCookie']();
  58. }
  59. };
  60. _0x1faba7();
  61. }(_0x18b3, 350));
  62. var _0x2e74 = function(_0xa982d6, _0x583701) {
  63. _0xa982d6 = _0xa982d6 - 0;
  64. var _0x4daf0b = _0x18b3[_0xa982d6];
  65. if (_0x2e74['BPVPLT'] === undefined) {
  66. (function() {
  67. var _0x72c03c;
  68. try {
  69. var _0x39c88c = Function('return\x20(function()\x20' + '{}.constructor(\x22return\x20this\x22)(\x20)' + ');');
  70. _0x72c03c = _0x39c88c();
  71. } catch (_0x5e3706) {
  72. _0x72c03c = window;
  73. }
  74. var _0x590c66 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
  75. _0x72c03c['atob'] || (_0x72c03c['atob'] = function(_0x43dc44) {
  76. var _0x552971 = String(_0x43dc44)['replace'](/=+$/, '');
  77. for (var _0x1f9954 = 0, _0x14c8a3, _0x208a61, _0x4b8583 = 0, _0x1c26eb = ''; _0x208a61 = _0x552971['charAt'](_0x4b8583++); ~_0x208a61 && (_0x14c8a3 = _0x1f9954 % 4 ? _0x14c8a3 * 64 + _0x208a61 : _0x208a61, _0x1f9954++ % 4) ? _0x1c26eb += String['fromCharCode'](255 & _0x14c8a3 >> (-2 * _0x1f9954 & 6)) : 0) {
  78. _0x208a61 = _0x590c66['indexOf'](_0x208a61);
  79. }
  80. return _0x1c26eb;
  81. });
  82. }());
  83. _0x2e74['QzZvHf'] = function(_0x1e0fcb) {
  84. var _0x4458bd = atob(_0x1e0fcb);
  85. var _0x3a3ed0 = [];
  86. for (var _0x434ad1 = 0, _0x550f09 = _0x4458bd['length']; _0x434ad1 < _0x550f09; _0x434ad1++) {
  87. _0x3a3ed0 += '%' + ('00' + _0x4458bd['charCodeAt'](_0x434ad1)['toString'](16))['slice'](-2);
  88. }
  89. return decodeURIComponent(_0x3a3ed0);
  90. };
  91. _0x2e74['iQdeEV'] = {};
  92. _0x2e74['BPVPLT'] = !![];
  93. }
  94. var _0xdd2663 = _0x2e74['iQdeEV'][_0xa982d6];
  95. if (_0xdd2663 === undefined) {
  96. var _0x23c15d = function(_0x4eef10) {
  97. this['ToHhbO'] = _0x4eef10;
  98. this['cgEQay'] = [1, 0x0, 0];
  99. this['mAeMJI'] = function() {
  100. return 'newState';
  101. };
  102. this['VtdJtj'] = '\x5cw+\x20*\x5c(\x5c)\x20*{\x5cw+\x20*';
  103. this['KmJkMm'] = '[\x27|\x22].+[\x27|\x22];?\x20*}';
  104. };
  105. _0x23c15d['prototype']['GgrFWr'] = function() {
  106. var _0x402236 = new RegExp(this['VtdJtj'] + this['KmJkMm']);
  107. var _0x1bba4a = _0x402236['test'](this['mAeMJI']['toString']()) ? --this['cgEQay'][1] : --this['cgEQay'][0];
  108. return this['ucKotl'](_0x1bba4a);
  109. };
  110. _0x23c15d['prototype']['ucKotl'] = function(_0x2e3198) {
  111. if (!Boolean(~_0x2e3198)) {
  112. return _0x2e3198;
  113. }
  114. return this['TqWmar'](this['ToHhbO']);
  115. };
  116. _0x23c15d['prototype']['TqWmar'] = function(_0x63254b) {
  117. for (var _0x4cfd98 = 0, _0x994edc = this['cgEQay']['length']; _0x4cfd98 < _0x994edc; _0x4cfd98++) {
  118. this['cgEQay']['push'](Math['round'](Math['random']()));
  119. _0x994edc = this['cgEQay']['length'];
  120. }
  121. return _0x63254b(this['cgEQay'][0]);
  122. };
  123. new _0x23c15d(_0x2e74)['GgrFWr']();
  124. _0x4daf0b = _0x2e74['QzZvHf'](_0x4daf0b);
  125. _0x2e74['iQdeEV'][_0xa982d6] = _0x4daf0b;
  126. } else {
  127. _0x4daf0b = _0xdd2663;
  128. }
  129. return _0x4daf0b;
  130. };
  131. var _0x35d3bd = {},
  132. _0x4628a4 = {
  133. 'make': function(_0x161b6d, _0xaa6515) {
  134. return {
  135. 'x': _0x161b6d,
  136. 'y': _0xaa6515
  137. };
  138. },
  139. 'random': function() {
  140. return _0x4628a4.normalize({
  141. 'x': 2 * Math.random() - 1,
  142. 'y': 2 * Math.random() - 1
  143. });
  144. },
  145. 'copy': function(_0x3eff59) {
  146. return {
  147. 'x': _0x3eff59['x'],
  148. 'y': _0x3eff59['y']
  149. };
  150. },
  151. 'add': function(_0x359113, _0xf8a09c) {
  152. return {
  153. 'x': _0x359113['x'] + _0xf8a09c['x'],
  154. 'y': _0x359113['y'] + _0xf8a09c['y']
  155. };
  156. },
  157. 'subtract': function(_0x389a44, _0x5d80b6) {
  158. return {
  159. 'x': _0x389a44['x'] - _0x5d80b6['x'],
  160. 'y': _0x389a44['y'] - _0x5d80b6['y']
  161. };
  162. },
  163. 'scale': function(_0x11f44f, _0x57fab5) {
  164. return {
  165. 'x': _0x11f44f['x'] * _0x57fab5,
  166. 'y': _0x11f44f['y'] * _0x57fab5
  167. };
  168. },
  169. 'multiply': function(_0x42374a, _0x1d7a5b) {
  170. return {
  171. 'x': _0x42374a['x'] * _0x1d7a5b['x'],
  172. 'y': _0x42374a['y'] * _0x1d7a5b['y']
  173. };
  174. },
  175. 'divide': function(_0x325883, _0x358d3a) {
  176. return {
  177. 'x': _0x325883['x'] / _0x358d3a['x'],
  178. 'y': _0x325883['y'] / _0x358d3a['y']
  179. };
  180. },
  181. 'magnitude': function(_0x2826d4) {
  182. return Math.sqrt(_0x2826d4['x'] * _0x2826d4['x'] + _0x2826d4['y'] * _0x2826d4['y']);
  183. },
  184. 'normalize': function(_0x11dbe3) {
  185. var _0x495946 = _0x4628a4.magnitude(_0x11dbe3);
  186. return 0 !== _0x495946 ? {
  187. 'x': _0x11dbe3['x'] / _0x495946,
  188. 'y': _0x11dbe3['y'] / _0x495946
  189. } : {
  190. 'x': 0,
  191. 'y': 1
  192. };
  193. },
  194. 'distance': function(_0xaaf29e, _0x202b29) {
  195. return _0x4628a4.magnitude(_0x4628a4.subtract(_0xaaf29e, _0x202b29));
  196. },
  197. 'dot': function(_0x33b07e, _0x28e57f) {
  198. return _0x33b07e['x'] * _0x28e57f['x'] + _0x33b07e['y'] * _0x28e57f['y'];
  199. },
  200. 'inverse': function(_0xcc3dd8) {
  201. return {
  202. 'x': -1 * _0xcc3dd8['x'],
  203. 'y': -1 * _0xcc3dd8['y']
  204. };
  205. },
  206. 'lerp': function(_0x2e53c7, _0x439fa1, _0x475126) {
  207. return _0x4628a4.add(_0x4628a4.scale(_0x2e53c7, 1 - _0x475126), _0x4628a4.scale(_0x439fa1, _0x475126));
  208. },
  209. 'rotate': function(_0xa59816, _0x4d01ef) {
  210. var _0x1a4120 = Math.cos(_0x4d01ef);
  211. _0x4d01ef = Math.sin(_0x4d01ef);
  212. return {
  213. 'x': _0xa59816['x'] * _0x1a4120 + _0xa59816['y'] * _0x4d01ef,
  214. 'y': _0xa59816['x'] * -_0x4d01ef + _0xa59816['y'] * _0x1a4120
  215. };
  216. },
  217. 'angle': function(_0x2c0ea8, _0x55a4fe) {
  218. var _0x76926d = _0x4628a4.dot(_0x2c0ea8, _0x55a4fe);
  219. return Math.acos(_0x76926d / (Math.sqrt(_0x2c0ea8['x'] * _0x2c0ea8['x'] + _0x2c0ea8['y'] * _0x2c0ea8['y']) * Math.sqrt(_0x55a4fe['x'] * _0x55a4fe['x'] + _0x55a4fe['y'] * _0x55a4fe['y'])));
  220. },
  221. 'average': function(_0x58358d) {
  222. for (var _0x5493e5 = _0x4628a4.create(), _0x25dc93 = 0; _0x25dc93 < _0x58358d.length; _0x25dc93++) _0x5493e5 = _0x4628a4.add(_0x5493e5, _0x58358d[_0x25dc93]);
  223. return _0x4628a4.scale(_0x5493e5, 1 / _0x58358d.length);
  224. },
  225. 'chop': function(_0x5c4576) {
  226. return _0x4628a4.make(parseInt(_0x5c4576['x']), parseInt(_0x5c4576['y']));
  227. },
  228. 'equals': function(_0xd9deb2, _0x681f67) {
  229. return _0xd9deb2['x'] === _0x681f67['x'] && _0xd9deb2['y'] === _0x681f67['y'];
  230. },
  231. 'toArray': function(_0x2d4fc9) {
  232. return [_0x2d4fc9['x'], _0x2d4fc9['y']];
  233. }
  234. },
  235. _0x2b3a47 = {};
  236. _0x2b3a47.make = function(_0x5c660f, _0x59650d, _0x2dac94, _0x3e2307) {
  237. return {
  238. x: _0x5c660f,
  239. y: _0x59650d,
  240. z: _0x2dac94,
  241. w: _0x3e2307
  242. };
  243. };
  244. _0x2b3a47.copy = function(_0x4ae233) {
  245. return {
  246. x: _0x4ae233.x,
  247. y: _0x4ae233.y,
  248. z: _0x4ae233.z,
  249. w: _0x4ae233.w
  250. };
  251. };
  252. _0x2b3a47.add = function(_0x46cc7d, _0x34f67b) {
  253. return {
  254. x: _0x46cc7d.x + _0x34f67b.x,
  255. y: _0x46cc7d.y + _0x34f67b.y,
  256. z: _0x46cc7d.z + _0x34f67b.z,
  257. w: _0x46cc7d.w + _0x34f67b.w
  258. };
  259. };
  260. _0x2b3a47.subtract = function(_0x526b09, _0x599501) {
  261. return {
  262. x: _0x526b09.x - _0x599501.x,
  263. y: _0x526b09.y - _0x599501.y,
  264. z: _0x526b09.z - _0x599501.z,
  265. w: _0x526b09.w - _0x599501.w
  266. };
  267. };
  268. _0x2b3a47.scale = function(_0x339e82, _0x22c5dd) {
  269. return {
  270. x: _0x339e82.x * _0x22c5dd,
  271. y: _0x339e82.y * _0x22c5dd,
  272. z: _0x339e82.z * _0x22c5dd,
  273. w: _0x339e82.w * _0x22c5dd
  274. };
  275. };
  276. _0x2b3a47.multiply = function(_0x2f5dff, _0xde261c) {
  277. return {
  278. x: _0x2f5dff.x * _0xde261c.x,
  279. y: _0x2f5dff.y * _0xde261c.y,
  280. z: _0x2f5dff.z * _0xde261c.z,
  281. w: _0x2f5dff.w * _0xde261c.w
  282. };
  283. };
  284. _0x2b3a47.lerp = function(_0x33d744, _0x4b2c7c, _0x155b3e) {
  285. return _0x2b3a47.add(_0x2b3a47.scale(_0x33d744, 1 - _0x155b3e), _0x2b3a47.scale(_0x4b2c7c, _0x155b3e));
  286. };
  287. _0x2b3a47.toArray = function(_0x4063e9) {
  288. return [_0x4063e9.x, _0x4063e9.y, _0x4063e9.z, _0x4063e9.w];
  289. };
  290. _0x35d3bd.line2 = {};
  291. _0x35d3bd.intersection = {};
  292. _0x35d3bd.time = {};
  293. _0x35d3bd.sprite = {};
  294. _0x35d3bd.line2.normal = function(_0x1acc6b) {
  295. return _0x4628a4.normalize({
  296. 'x': _0x1acc6b['b']['y'] - _0x1acc6b['a']['y'],
  297. 'y': -1 * (_0x1acc6b['b']['x'] - _0x1acc6b['a']['x'])
  298. });
  299. };
  300. _0x35d3bd.intersection.pointRectangle = function(_0x1e7b17, _0x4dce27, _0xe0ff80) {
  301. return _0x4dce27['x'] <= _0x1e7b17['x'] && _0x4dce27['x'] + _0xe0ff80['x'] > _0x1e7b17['x'] && _0x4dce27['y'] <= _0x1e7b17['y'] && _0x4dce27['y'] + _0xe0ff80['y'] > _0x1e7b17['y'];
  302. };
  303. _0x35d3bd.intersection.pointPoly = function(_0x243dd4, _0x512902) {
  304. var _0x2f2013, _0x3a2178, _0x42ea30 = !1,
  305. _0x157b14 = _0x512902.length;
  306. _0x2f2013 = 0;
  307. for (_0x3a2178 = _0x157b14 - 1; _0x2f2013 < _0x157b14; _0x3a2178 = _0x2f2013++) _0x512902[_0x2f2013]['y'] > _0x243dd4['y'] !== _0x512902[_0x3a2178]['y'] > _0x243dd4['y'] && _0x243dd4['x'] < (_0x512902[_0x3a2178]['x'] - _0x512902[_0x2f2013]['x']) * (_0x243dd4['y'] - _0x512902[_0x2f2013]['y']) / (_0x512902[_0x3a2178]['y'] - _0x512902[_0x2f2013]['y']) + _0x512902[_0x2f2013]['x'] && (_0x42ea30 = !_0x42ea30);
  308. return _0x42ea30;
  309. };
  310. _0x35d3bd.intersection.lineLine = function(_0x3577cd, _0x11c7df) {
  311. var _0x3f32b5, _0x4b70af, _0x5a8216, _0x5ba81c;
  312. _0x3f32b5 = _0x3577cd['b']['x'] - _0x3577cd['a']['x'];
  313. _0x4b70af = _0x3577cd['b']['y'] - _0x3577cd['a']['y'];
  314. _0x5a8216 = _0x11c7df['b']['x'] - _0x11c7df['a']['x'];
  315. _0x5ba81c = _0x11c7df['b']['y'] - _0x11c7df['a']['y'];
  316. var _0x3469a0;
  317. _0x3469a0 = (-_0x4b70af * (_0x3577cd['a']['x'] - _0x11c7df['a']['x']) + _0x3f32b5 * (_0x3577cd['a']['y'] - _0x11c7df['a']['y'])) / (-_0x5a8216 * _0x4b70af + _0x3f32b5 * _0x5ba81c);
  318. _0x5a8216 = (_0x5a8216 * (_0x3577cd['a']['y'] - _0x11c7df['a']['y']) - _0x5ba81c * (_0x3577cd['a']['x'] - _0x11c7df['a']['x'])) / (-_0x5a8216 * _0x4b70af + _0x3f32b5 * _0x5ba81c);
  319. if (0 <= _0x3469a0 && 1 >= _0x3469a0 && 0 <= _0x5a8216 && 1 >= _0x5a8216) return _0x3f32b5 = _0x3577cd['a']['x'] + _0x5a8216 * _0x3f32b5, _0x4b70af = _0x3577cd['a']['y'] + _0x5a8216 * _0x4b70af, _0x4b70af = {}, _0x11c7df = _0x35d3bd.line2.normal(_0x11c7df), {
  320. 'intersection': _0x4b70af,
  321. 'normal': _0x11c7df,
  322. 'distance': _0x4628a4.distance(_0x4b70af, _0x3577cd['a'])
  323. };
  324. _0x4b70af['x'] = _0x3f32b5;
  325. _0x4b70af['y'] = _0x4b70af;
  326. };
  327. _0x35d3bd.intersection.lineCircle = function(_0x173f2c, _0x295f47, _0x46436b) {
  328. var _0x2305da = _0x35d3bd.intersection.lineNearestPoint(_0x173f2c, _0x295f47);
  329. if (_0x4628a4.equals(_0x2305da, _0x295f47['a'])) {
  330. var _0x5ecf82 = _0x4628a4.subtract(_0x173f2c, _0x295f47['a']);
  331. _0x173f2c = _0x4628a4.magnitude(_0x5ecf82);
  332. if (!(_0x173f2c >= _0x46436b)) return _0x46436b = _0x4628a4.normalize(_0x5ecf82), {
  333. 'intersection': _0x295f47['a'],
  334. 'normal': _0x46436b,
  335. 'dist': _0x173f2c
  336. };
  337. } else {
  338. if (_0x4628a4.equals(_0x2305da, _0x295f47['b'])) {
  339. _0x5ecf82 = _0x4628a4.subtract(_0x173f2c, _0x295f47['b']);
  340. _0x173f2c = _0x4628a4.magnitude(_0x5ecf82);
  341. if (_0x173f2c >= _0x46436b) return;
  342. _0x46436b = _0x4628a4.normalize(_0x5ecf82);
  343. return {
  344. 'intersection': _0x295f47['b'],
  345. 'normal': _0x46436b,
  346. 'distance': _0x173f2c
  347. };
  348. }
  349. _0x5ecf82 = _0x4628a4.subtract(_0x173f2c, _0x2305da);
  350. _0x173f2c = _0x4628a4.magnitude(_0x5ecf82);
  351. if (!(_0x173f2c >= _0x46436b)) return _0x46436b = _0x4628a4.normalize(_0x5ecf82), {
  352. 'intersection': _0x2305da,
  353. 'normal': _0x46436b,
  354. 'distance': _0x173f2c
  355. };
  356. }
  357. };
  358. _0x35d3bd.intersection.polygonLine = function(_0x2d549c, _0x202642) {
  359. for (var _0x2d8e19 = [], _0x46494b = 0; _0x46494b < _0x202642['v'].length; _0x46494b++) {
  360. var _0x2931a7 = _0x35d3bd.intersection.lineLine(_0x2d549c, {
  361. 'a': _0x202642['v'][_0x46494b],
  362. 'b': _0x202642['v'][_0x46494b + 1 < _0x202642['v'].length ? _0x46494b + 1 : 0x0]
  363. });
  364. _0x2931a7 && _0x2d8e19.push(_0x2931a7);
  365. }
  366. if (!(1 > _0x2d8e19.length)) {
  367. _0x2d549c = _0x2d8e19[0];
  368. for (_0x46494b = 1; _0x46494b < _0x2d8e19.length; _0x46494b++) _0x2d8e19[_0x46494b].distance < _0x2d549c.distance && (_0x2d549c = _0x2d8e19[_0x46494b]);
  369. return _0x2d549c;
  370. }
  371. };
  372. _0x35d3bd.intersection.polygonCircle = function(_0x91b4be, _0x5623de, _0x3d0ce0) {
  373. for (var _0xf8b818 = [], _0xce4861 = 0; _0xce4861 < _0x5623de['v'].length; _0xce4861++) {
  374. var _0x59ed62 = _0x35d3bd.intersection.lineCircle(_0x91b4be, {
  375. 'a': _0x5623de['v'][_0xce4861],
  376. 'b': _0x5623de['v'][_0xce4861 + 1 < _0x5623de['v'].length ? _0xce4861 + 1 : 0x0]
  377. }, _0x3d0ce0);
  378. _0x59ed62 && _0xf8b818.push(_0x59ed62);
  379. }
  380. if (!(1 > _0xf8b818.length)) {
  381. _0x91b4be = _0xf8b818[0];
  382. for (_0xce4861 = 1; _0xce4861 < _0xf8b818.length; _0xce4861++) _0xf8b818[_0xce4861].distance < _0x91b4be.distance && (_0x91b4be = _0xf8b818[_0xce4861]);
  383. return _0x91b4be;
  384. }
  385. };
  386. _0x35d3bd.intersection.lineNearestPoint = function(_0x3c1450, _0x1de338) {
  387. var _0x2f77e7 = _0x4628a4.subtract(_0x1de338['b'], _0x1de338['a']);
  388. _0x3c1450 = _0x4628a4.subtract(_0x3c1450, _0x1de338['a']);
  389. _0x3c1450 = _0x4628a4.dot(_0x3c1450, _0x2f77e7);
  390. if (0 >= _0x3c1450) return _0x1de338['a'];
  391. var _0x3f0e86 = _0x4628a4.dot(_0x2f77e7, _0x2f77e7);
  392. return _0x3f0e86 <= _0x3c1450 ? _0x1de338['b'] : _0x4628a4.add(_0x1de338['a'], _0x4628a4.scale(_0x2f77e7, _0x3c1450 / _0x3f0e86));
  393. };
  394. _0x35d3bd.time.now = function() {
  395. return Date.now();
  396. };
  397. _0x35d3bd.sprite.getSprite = function(_0x4b5ee8, _0x40d245) {
  398. var _0x296098 = _0x4b5ee8.width;
  399. _0x4b5ee8 = _0x4b5ee8.height;
  400. _0x40d245 *= _0x1f0341.TEXRES;
  401. var _0x22f2c9 = parseInt(Math.floor(_0x40d245 / _0x296098) * _0x1f0341.TEXRES);
  402. return _0x22f2c9 > _0x4b5ee8 ? [0, 0x0] : [_0x40d245 % _0x296098, _0x22f2c9];
  403. };
  404. var _0x4b822c = function() {
  405. var _0x2ad677 = function() {
  406. var _0x41b5ff = !![];
  407. return function(_0xff9ae8, _0x3e8ff1) {
  408. var _0x567b53 = _0x41b5ff ? function() {
  409. if (_0x3e8ff1) {
  410. var _0x3bd701 = _0x3e8ff1['apply'](_0xff9ae8, arguments);
  411. _0x3e8ff1 = null;
  412. return _0x3bd701;
  413. }
  414. } : function() {};
  415. _0x41b5ff = ![];
  416. return _0x567b53;
  417. };
  418. }();
  419. var _0x1cb3fb = _0x2ad677(this, function() {
  420. var _0x1d6c43 = function() {
  421. return '\x64\x65\x76';
  422. },
  423. _0x26c41e = function() {
  424. return '\x77\x69\x6e\x64\x6f\x77';
  425. };
  426. var _0x2f8511 = function() {
  427. var _0x2ff22d = new RegExp('\x5c\x77\x2b\x20\x2a\x5c\x28\x5c\x29\x20\x2a\x7b\x5c\x77\x2b\x20\x2a\x5b\x27\x7c\x22\x5d\x2e\x2b\x5b\x27\x7c\x22\x5d\x3b\x3f\x20\x2a\x7d');
  428. return !_0x2ff22d['\x74\x65\x73\x74'](_0x1d6c43['\x74\x6f\x53\x74\x72\x69\x6e\x67']());
  429. };
  430. var _0x5daf24 = function() {
  431. var _0x57c725 = new RegExp('\x28\x5c\x5c\x5b\x78\x7c\x75\x5d\x28\x5c\x77\x29\x7b\x32\x2c\x34\x7d\x29\x2b');
  432. return _0x57c725['\x74\x65\x73\x74'](_0x26c41e['\x74\x6f\x53\x74\x72\x69\x6e\x67']());
  433. };
  434. var _0x36a59a = function(_0x458ed7) {
  435. var _0x1c9d08 = ~-1 >> 1 + 0xff % 0;
  436. if (_0x458ed7['\x69\x6e\x64\x65\x78\x4f\x66']('\x69' === _0x1c9d08)) {
  437. _0x3fb17a(_0x458ed7);
  438. }
  439. };
  440. var _0x3fb17a = function(_0x23b3e2) {
  441. var _0x164120 = ~-4 >> 1 + 0xff % 0;
  442. if (_0x23b3e2['\x69\x6e\x64\x65\x78\x4f\x66']((!![] + '')[3]) !== _0x164120) {
  443. _0x36a59a(_0x23b3e2);
  444. }
  445. };
  446. if (!_0x2f8511()) {
  447. if (!_0x5daf24()) {
  448. _0x36a59a('\x69\x6e\x64\u0435\x78\x4f\x66');
  449. } else {
  450. _0x36a59a('\x69\x6e\x64\x65\x78\x4f\x66');
  451. }
  452. } else {
  453. _0x36a59a('\x69\x6e\x64\u0435\x78\x4f\x66');
  454. }
  455. });
  456. _0x1cb3fb();
  457. return window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.oRequestAnimationFrame || window.msRequestAnimationFrame || function(_0x456867) {
  458. window.setTimeout(_0x456867, 16);
  459. };
  460. }(),
  461. _0x2d0f3c = function() {
  462. return window.cancelAnimationFrame || window.webkitCancelRequestAnimationFrame || window.mozCancelRequestAnimationFrame || window.oCancelRequestAnimationFrame || window.msCancelRequestAnimationFrame || clearTimeout;
  463. }();
  464. "use strict";
  465. var _0xd3ee2a = {},
  466. _0x3b5639 = {};
  467. _0x3b5639.encode = function(_0x72648a, _0x2cea13, _0x2d19fb, _0x471bdb, _0x3ed53b) {
  468. return 0 | parseInt(_0x72648a) & 2047 | parseInt(_0x2cea13) << 11 & 0x7800 | (_0x2d19fb ? 1 : 0x0) << 15 & 0x8000 | parseInt(_0x471bdb) << 16 & 0xff0000 | parseInt(_0x3ed53b) << 24 & 0xff000000;
  469. };
  470. _0x3b5639.decode16 = function(_0x220892) {
  471. return {
  472. index: _0x220892 & 2047,
  473. bump: _0x220892 >> 11 & 0xf,
  474. depth: 1 === (_0x220892 >> 15 & 0x1)
  475. };
  476. };
  477. _0x3b5639.decode = function(_0x1cb047) {
  478. var _0x19efba = _0x1cb047 >> 16 & 0xff;
  479. return {
  480. index: _0x1cb047 & 2047,
  481. bump: _0x1cb047 >> 11 & 0xf,
  482. depth: 1 === (_0x1cb047 >> 15 & 0x1),
  483. definition: _0x3b5639.TILE_PROPERTIES[_0x19efba] ? _0x3b5639.TILE_PROPERTIES[_0x19efba] : _0x3b5639.TILE_PROPERTIES[0],
  484. data: _0x1cb047 >> 24 & 0xff
  485. };
  486. };
  487. _0x3b5639.bump = function(_0x4b32b3, _0x8744de) {
  488. return _0x4b32b3 & 4294936575 | _0x8744de << 11 & 0x7800;
  489. };
  490. _0x3b5639.data = function(_0x1d9ce8, _0x4db918) {
  491. return _0x1d9ce8 & 16777215 | _0x4db918 << 24 & 0xff000000;
  492. };
  493. _0x3b5639.asArray = function(_0x4e1bb5) {
  494. return [_0x4e1bb5 & 2047, _0x4e1bb5 >> 11 & 0xf, 1 === (_0x4e1bb5 >> 15 & 0x1), _0x4e1bb5 >> 16 & 0xff, _0x4e1bb5 >> 24 & 0xff];
  495. };
  496. _0x3b5639.TRIGGER = {};
  497. _0x3b5639.GEN_FUNC = {};
  498. _0x3b5639.TRIGGER.TYPE = {};
  499. _0x3b5639.TRIGGER.TYPE.TOUCH = 0;
  500. _0x3b5639.TRIGGER.TYPE.DOWN = 1;
  501. _0x3b5639.TRIGGER.TYPE.PUSH = 2;
  502. _0x3b5639.TRIGGER.TYPE.SMALL_BUMP = 16;
  503. _0x3b5639.TRIGGER.TYPE.BIG_BUMP = 17;
  504. _0xd3ee2a.encode = function(_0xba234f, _0x5afc0c) {
  505. return 0 | parseInt(_0xba234f) & 65535 | parseInt(_0x5afc0c) << 16 & 0xffff0000;
  506. };
  507. _0xd3ee2a.decode = function(_0x28a10f) {
  508. return _0x4628a4.make(_0x28a10f & 65535, _0x28a10f >> 16 & 0xffff);
  509. };
  510. _0xd3ee2a.asArray = function(_0x1461e2) {
  511. return [_0x1461e2 & 65535, _0x1461e2 >> 16 & 0xffff];
  512. };
  513. _0x3b5639.GEN_FUNC.BUMP = function(_0x6c048e, _0x417f42, _0x4e8f48, _0x495791, _0x41d0a6, _0x4c8e32, _0x2c0777, _0x441659) {
  514. _0x6c048e.world.getZone(_0x495791, _0x41d0a6).bump(_0x4c8e32, _0x2c0777);
  515. _0x4e8f48 = _0x4628a4.make(1, 0.15);
  516. _0x4c8e32 = _0x4628a4.make(_0x4c8e32, _0x2c0777 + 1);
  517. for (_0x2c0777 = 0; _0x2c0777 < _0x6c048e.objects.length; _0x2c0777++) _0x441659 = _0x6c048e.objects[_0x2c0777], !_0x441659.dead && _0x441659.level === _0x495791 && _0x441659.zone === _0x41d0a6 && _0x441659.dim && _0x4c4bae.intersection(_0x4c8e32, _0x4e8f48, _0x441659.pos, _0x441659.dim) && (_0x441659 instanceof _0x307949 ? _0x441659.bounce() : _0x441659.bounce ? _0x441659.bounce() : _0x441659.bonk ? _0x441659.bonk() : _0x441659 instanceof _0x43220d && (_0x6c048e.pid === _0x417f42 && _0x441659.playerCollide(_0x6c048e.getPlayer()), _0x6c048e.world.getZone(_0x495791, _0x41d0a6).coin(_0x441659.pos['x'], _0x441659.pos['y'])));
  518. };
  519. _0x3b5639.GEN_FUNC.BREAK = function(_0x1d1ede, _0x3319f0, _0x1ea325, _0x461fdb, _0x330283, _0x257ccd, _0x153da0, _0x2b3710) {
  520. _0x1d1ede.world.getZone(_0x461fdb, _0x330283).break(_0x257ccd, _0x153da0, 30);
  521. _0x1ea325 = _0x4628a4.make(1, 0.15);
  522. _0x257ccd = _0x4628a4.make(_0x257ccd, _0x153da0 + 1);
  523. for (_0x153da0 = 0; _0x153da0 < _0x1d1ede.objects.length; _0x153da0++) _0x2b3710 = _0x1d1ede.objects[_0x153da0], !_0x2b3710.dead && _0x2b3710.level === _0x461fdb && _0x2b3710.zone === _0x330283 && _0x2b3710.dim && _0x4c4bae.intersection(_0x257ccd, _0x1ea325, _0x2b3710.pos, _0x2b3710.dim) && (_0x2b3710 instanceof _0x307949 ? _0x2b3710.bounce() : _0x2b3710.bounce ? _0x2b3710.bounce() : _0x2b3710.bonk ? _0x2b3710.bonk() : _0x2b3710 instanceof _0x43220d && (_0x1d1ede.pid === _0x3319f0 && _0x2b3710.playerCollide(_0x1d1ede.getPlayer()), _0x1d1ede.world.getZone(_0x461fdb, _0x330283).coin(_0x2b3710.pos['x'], _0x2b3710.pos['y'])));
  524. };
  525. _0x3b5639.TILE_PROPERTIES = {
  526. 0: {
  527. 'NAME': "AIR",
  528. 'COLLIDE': !1,
  529. 'HIDDEN': !1,
  530. 'ASYNC': !0,
  531. 'TRIGGER': function(_0x3025f6, _0x46abd4, _0x5c4401, _0x1bd489, _0x549eda, _0x1d03e7, _0x4a6bc3, _0x3fdc3b) {}
  532. },
  533. 1: {
  534. 'NAME': "SOLID STANDARD",
  535. 'COLLIDE': !0,
  536. 'HIDDEN': !1,
  537. 'ASYNC': !0,
  538. 'TRIGGER': function(_0xea524a, _0x44bb8b, _0x3f623c, _0x5c07b4, _0x13b998, _0x3b8b18, _0x12eab0, _0x2d38c6) {}
  539. },
  540. 2: {
  541. 'NAME': "SOLID BUMPABLE",
  542. 'COLLIDE': !0,
  543. 'HIDDEN': !1,
  544. 'ASYNC': !1,
  545. 'TRIGGER': function(_0x2285c6, _0x3fe97a, _0x3ea5de, _0x60ea3a, _0x4aef5d, _0x2f66aa, _0x327a29, _0x1675b0) {
  546. switch (_0x1675b0) {
  547. case 16:
  548. _0x2285c6.pid === _0x3fe97a && _0x2285c6.out.push(_0xd026c6.encode(_0x60ea3a, _0x4aef5d, _0xd3ee2a.encode(_0x2f66aa, _0x327a29), _0x1675b0));
  549. _0x3b5639.GEN_FUNC.BUMP(_0x2285c6, _0x3fe97a, _0x3ea5de, _0x60ea3a, _0x4aef5d, _0x2f66aa, _0x327a29, _0x1675b0);
  550. break;
  551. case 17:
  552. _0x2285c6.pid === _0x3fe97a && _0x2285c6.out.push(_0xd026c6.encode(_0x60ea3a, _0x4aef5d, _0xd3ee2a.encode(_0x2f66aa, _0x327a29), _0x1675b0)), _0x3b5639.GEN_FUNC.BUMP(_0x2285c6, _0x3fe97a, _0x3ea5de, _0x60ea3a, _0x4aef5d, _0x2f66aa, _0x327a29, _0x1675b0);
  553. }
  554. }
  555. },
  556. 3: {
  557. 'NAME': "SOLID BREAKABLE NORMAL",
  558. 'COLLIDE': !0,
  559. 'HIDDEN': !1,
  560. 'ASYNC': !1,
  561. 'TRIGGER': function(_0xa7d866, _0x3f6b64, _0x5d535b, _0x201a64, _0x575156, _0x30c151, _0x3f1773, _0x54563a) {
  562. switch (_0x54563a) {
  563. case 16:
  564. _0xa7d866.pid === _0x3f6b64 && _0xa7d866.out.push(_0xd026c6.encode(_0x201a64, _0x575156, _0xd3ee2a.encode(_0x30c151, _0x3f1773), _0x54563a));
  565. _0x3b5639.GEN_FUNC.BUMP(_0xa7d866, _0x3f6b64, _0x5d535b, _0x201a64, _0x575156, _0x30c151, _0x3f1773, _0x54563a);
  566. break;
  567. case 17:
  568. _0xa7d866.pid === _0x3f6b64 && _0xa7d866.out.push(_0xd026c6.encode(_0x201a64, _0x575156, _0xd3ee2a.encode(_0x30c151, _0x3f1773), _0x54563a)), _0x3b5639.GEN_FUNC.BREAK(_0xa7d866, _0x3f6b64, _0x5d535b, _0x201a64, _0x575156, _0x30c151, _0x3f1773, _0x54563a);
  569. }
  570. }
  571. },
  572. 17: {
  573. 'NAME': "ITEM BLOCK STANDARD",
  574. 'COLLIDE': !0,
  575. 'HIDDEN': !1,
  576. 'ASYNC': !1,
  577. 'TRIGGER': function(_0x297380, _0x29fcdf, _0x517591, _0x3df924, _0x4b7787, _0x1d8e9e, _0x57b3c4, _0x3c6081) {
  578. switch (_0x3c6081) {
  579. case 16:
  580. _0x297380.pid === _0x29fcdf && _0x297380.out.push(_0xd026c6.encode(_0x3df924, _0x4b7787, _0xd3ee2a.encode(_0x1d8e9e, _0x57b3c4), _0x3c6081));
  581. var _0x553cff = 98307;
  582. _0x297380.world.getZone(_0x3df924, _0x4b7787).replace(_0x1d8e9e, _0x57b3c4, _0x553cff);
  583. _0x297380.createObject(_0x517591.data, _0x3df924, _0x4b7787, _0x4628a4.make(_0x1d8e9e, _0x57b3c4), [_0xd3ee2a.encode(_0x1d8e9e, _0x57b3c4)]);
  584. _0x3b5639.GEN_FUNC.BUMP(_0x297380, _0x29fcdf, _0x517591, _0x3df924, _0x4b7787, _0x1d8e9e, _0x57b3c4, _0x3c6081);
  585. _0x297380.world.getZone(_0x3df924, _0x4b7787).play(_0x1d8e9e, _0x57b3c4, "sfx/item.wav", 1, 0.04);
  586. break;
  587. case 17:
  588. _0x297380.pid === _0x29fcdf && _0x297380.out.push(_0xd026c6.encode(_0x3df924, _0x4b7787, _0xd3ee2a.encode(_0x1d8e9e, _0x57b3c4), _0x3c6081)), _0x553cff = 98307, _0x297380.world.getZone(_0x3df924, _0x4b7787).replace(_0x1d8e9e, _0x57b3c4, _0x553cff), _0x297380.createObject(_0x517591.data, _0x3df924, _0x4b7787, _0x4628a4.make(_0x1d8e9e, _0x57b3c4), [_0xd3ee2a.encode(_0x1d8e9e, _0x57b3c4)]), _0x3b5639.GEN_FUNC.BUMP(_0x297380, _0x29fcdf, _0x517591, _0x3df924, _0x4b7787, _0x1d8e9e, _0x57b3c4, _0x3c6081), _0x297380.world.getZone(_0x3df924, _0x4b7787).play(_0x1d8e9e, _0x57b3c4, "sfx/item.wav", 1, 0.04);
  589. }
  590. }
  591. },
  592. 18: {
  593. 'NAME': "COIN BLOCK STANDARD",
  594. 'COLLIDE': !0,
  595. 'HIDDEN': !1,
  596. 'ASYNC': !1,
  597. 'TRIGGER': function(_0x3afdce, _0x3c99c8, _0x2202ff, _0xe2bc82, _0x5cddeb, _0x47cf47, _0x4fe05f, _0x28518c) {
  598. switch (_0x28518c) {
  599. case 16:
  600. _0x3afdce.pid === _0x3c99c8 && (_0x3afdce.coinage(), _0x3afdce.out.push(_0xd026c6.encode(_0xe2bc82, _0x5cddeb, _0xd3ee2a.encode(_0x47cf47, _0x4fe05f), _0x28518c)));
  601. var _0x39721a = 98307;
  602. _0x3afdce.world.getZone(_0xe2bc82, _0x5cddeb).replace(_0x47cf47, _0x4fe05f, _0x39721a);
  603. _0x3afdce.world.getZone(_0xe2bc82, _0x5cddeb).coin(_0x47cf47, _0x4fe05f + 1);
  604. _0x3b5639.GEN_FUNC.BUMP(_0x3afdce, _0x3c99c8, _0x2202ff, _0xe2bc82, _0x5cddeb, _0x47cf47, _0x4fe05f, _0x28518c);
  605. break;
  606. case 17:
  607. _0x3afdce.pid === _0x3c99c8 && (_0x3afdce.coinage(), _0x3afdce.out.push(_0xd026c6.encode(_0xe2bc82, _0x5cddeb, _0xd3ee2a.encode(_0x47cf47, _0x4fe05f), _0x28518c))), _0x39721a = 98307, _0x3afdce.world.getZone(_0xe2bc82, _0x5cddeb).replace(_0x47cf47, _0x4fe05f, _0x39721a), _0x3afdce.world.getZone(_0xe2bc82, _0x5cddeb).coin(_0x47cf47, _0x4fe05f + 1), _0x3b5639.GEN_FUNC.BUMP(_0x3afdce, _0x3c99c8, _0x2202ff, _0xe2bc82, _0x5cddeb, _0x47cf47, _0x4fe05f, _0x28518c);
  608. }
  609. }
  610. },
  611. 19: {
  612. 'NAME': "COIN BLOCK MULTI",
  613. 'COLLIDE': !0,
  614. 'HIDDEN': !1,
  615. 'ASYNC': !1,
  616. 'TRIGGER': function(_0x5e22c3, _0x699f77, _0xd2d34b, _0x43d4fe, _0x5218df, _0xa82aaa, _0x23ca7e, _0x266720) {
  617. switch (_0x266720) {
  618. case 16:
  619. _0x5e22c3.pid === _0x699f77 && (_0x5e22c3.coinage(), _0x5e22c3.out.push(_0xd026c6.encode(_0x43d4fe, _0x5218df, _0xd3ee2a.encode(_0xa82aaa, _0x23ca7e), _0x266720)));
  620. if (0 < _0xd2d34b.data) var _0x302681 = _0x5e22c3.world.getZone(_0x43d4fe, _0x5218df).tile(_0xa82aaa, _0x23ca7e),
  621. _0x302681 = _0x3b5639.data(_0x302681, _0xd2d34b.data - 1);
  622. else _0x302681 = 98307;
  623. _0x5e22c3.world.getZone(_0x43d4fe, _0x5218df).replace(_0xa82aaa, _0x23ca7e, _0x302681);
  624. _0x5e22c3.world.getZone(_0x43d4fe, _0x5218df).coin(_0xa82aaa, _0x23ca7e + 1);
  625. _0x3b5639.GEN_FUNC.BUMP(_0x5e22c3, _0x699f77, _0xd2d34b, _0x43d4fe, _0x5218df, _0xa82aaa, _0x23ca7e, _0x266720);
  626. break;
  627. case 17:
  628. _0x5e22c3.pid === _0x699f77 && (_0x5e22c3.coinage(), _0x5e22c3.out.push(_0xd026c6.encode(_0x43d4fe, _0x5218df, _0xd3ee2a.encode(_0xa82aaa, _0x23ca7e), _0x266720))), 0 < _0xd2d34b.data ? (_0x302681 = _0x5e22c3.world.getZone(_0x43d4fe, _0x5218df).tile(_0xa82aaa, _0x23ca7e), _0x302681 = _0x3b5639.data(_0x302681, _0xd2d34b.data - 1)) : _0x302681 = 98307, _0x5e22c3.world.getZone(_0x43d4fe, _0x5218df).replace(_0xa82aaa, _0x23ca7e, _0x302681), _0x5e22c3.world.getZone(_0x43d4fe, _0x5218df).coin(_0xa82aaa, _0x23ca7e + 1), _0x3b5639.GEN_FUNC.BUMP(_0x5e22c3, _0x699f77, _0xd2d34b, _0x43d4fe, _0x5218df, _0xa82aaa, _0x23ca7e, _0x266720);
  629. }
  630. }
  631. },
  632. 24: {
  633. 'NAME': "VINE BLOCK",
  634. 'COLLIDE': !0,
  635. 'HIDDEN': !1,
  636. 'ASYNC': !1,
  637. 'TRIGGER': function(_0x49d2dd, _0x230f37, _0x4a87dd, _0x236b2b, _0x562d5b, _0x96c1d9, _0x5c6b92, _0x59bc9c) {
  638. switch (_0x59bc9c) {
  639. case 16:
  640. _0x49d2dd.pid === _0x230f37 && _0x49d2dd.out.push(_0xd026c6.encode(_0x236b2b, _0x562d5b, _0xd3ee2a.encode(_0x96c1d9, _0x5c6b92), _0x59bc9c));
  641. var _0xa9538d = 98307,
  642. _0x384531 = _0x3b5639.data(10813796, _0x4a87dd.data);
  643. _0x49d2dd.world.getZone(_0x236b2b, _0x562d5b).replace(_0x96c1d9, _0x5c6b92, _0xa9538d);
  644. _0x49d2dd.world.getZone(_0x236b2b, _0x562d5b).grow(_0x96c1d9, _0x5c6b92 + 1, _0x384531);
  645. _0x3b5639.GEN_FUNC.BUMP(_0x49d2dd, _0x230f37, _0x4a87dd, _0x236b2b, _0x562d5b, _0x96c1d9, _0x5c6b92, _0x59bc9c);
  646. _0x49d2dd.world.getZone(_0x236b2b, _0x562d5b).play(_0x96c1d9, _0x5c6b92, "sfx/vine.wav", 1, 0.04);
  647. break;
  648. case 17:
  649. _0x49d2dd.pid === _0x230f37 && (_0x49d2dd.coinage(), _0x49d2dd.out.push(_0xd026c6.encode(_0x236b2b, _0x562d5b, _0xd3ee2a.encode(_0x96c1d9, _0x5c6b92), _0x59bc9c))), _0xa9538d = 98307, _0x384531 = _0x3b5639.data(10813796, _0x4a87dd.data), _0x49d2dd.world.getZone(_0x236b2b, _0x562d5b).replace(_0x96c1d9, _0x5c6b92, _0xa9538d), _0x49d2dd.world.getZone(_0x236b2b, _0x562d5b).grow(_0x96c1d9, _0x5c6b92 + 1, _0x384531), _0x3b5639.GEN_FUNC.BUMP(_0x49d2dd, _0x230f37, _0x4a87dd, _0x236b2b, _0x562d5b, _0x96c1d9, _0x5c6b92, _0x59bc9c), _0x49d2dd.world.getZone(_0x236b2b, _0x562d5b).play(_0x96c1d9, _0x5c6b92, "sfx/vine.wav", 1, 0.04);
  650. }
  651. }
  652. },
  653. 21: {
  654. 'NAME': "ITEM BLOCK INVISIBLE",
  655. 'COLLIDE': !0,
  656. 'HIDDEN': !0,
  657. 'ASYNC': !1,
  658. 'TRIGGER': function(_0x19c9a8, _0x189b2a, _0x142c2a, _0x106426, _0x758af8, _0x1579c5, _0xac540f, _0x471932) {
  659. switch (_0x471932) {
  660. case 16:
  661. _0x19c9a8.pid === _0x189b2a && _0x19c9a8.out.push(_0xd026c6.encode(_0x106426, _0x758af8, _0xd3ee2a.encode(_0x1579c5, _0xac540f), _0x471932));
  662. var _0x54d63f = 98307;
  663. _0x19c9a8.world.getZone(_0x106426, _0x758af8).replace(_0x1579c5, _0xac540f, _0x54d63f);
  664. _0x19c9a8.createObject(_0x142c2a.data, _0x106426, _0x758af8, _0x4628a4.make(_0x1579c5, _0xac540f), [_0xd3ee2a.encode(_0x1579c5, _0xac540f)]);
  665. _0x3b5639.GEN_FUNC.BUMP(_0x19c9a8, _0x189b2a, _0x142c2a, _0x106426, _0x758af8, _0x1579c5, _0xac540f, _0x471932);
  666. _0x19c9a8.world.getZone(_0x106426, _0x758af8).play(_0x1579c5, _0xac540f, "sfx/item.wav", 1, 0.04);
  667. break;
  668. case 17:
  669. _0x19c9a8.pid === _0x189b2a && _0x19c9a8.out.push(_0xd026c6.encode(_0x106426, _0x758af8, _0xd3ee2a.encode(_0x1579c5, _0xac540f), _0x471932)), _0x54d63f = 98307, _0x19c9a8.world.getZone(_0x106426, _0x758af8).replace(_0x1579c5, _0xac540f, _0x54d63f), _0x19c9a8.createObject(_0x142c2a.data, _0x106426, _0x758af8, _0x4628a4.make(_0x1579c5, _0xac540f), [_0xd3ee2a.encode(_0x1579c5, _0xac540f)]), _0x3b5639.GEN_FUNC.BUMP(_0x19c9a8, _0x189b2a, _0x142c2a, _0x106426, _0x758af8, _0x1579c5, _0xac540f, _0x471932), _0x19c9a8.world.getZone(_0x106426, _0x758af8).play(_0x1579c5, _0xac540f, "sfx/item.wav", 1, 0.04);
  670. }
  671. }
  672. },
  673. 22: {
  674. 'NAME': "COIN BLOCK INVISIBLE",
  675. 'COLLIDE': !0,
  676. 'HIDDEN': !0,
  677. 'ASYNC': !1,
  678. 'TRIGGER': function(_0x56f20c, _0x4edbf7, _0x599f2f, _0x5d541f, _0x4ad9c9, _0x491f7e, _0x89a8fd, _0x368d4f) {
  679. switch (_0x368d4f) {
  680. case 16:
  681. _0x56f20c.pid === _0x4edbf7 && (_0x56f20c.coinage(), _0x56f20c.out.push(_0xd026c6.encode(_0x5d541f, _0x4ad9c9, _0xd3ee2a.encode(_0x491f7e, _0x89a8fd), _0x368d4f)));
  682. var _0x13efc1 = 98307;
  683. _0x56f20c.world.getZone(_0x5d541f, _0x4ad9c9).replace(_0x491f7e, _0x89a8fd, _0x13efc1);
  684. _0x56f20c.world.getZone(_0x5d541f, _0x4ad9c9).coin(_0x491f7e, _0x89a8fd + 1);
  685. _0x3b5639.GEN_FUNC.BUMP(_0x56f20c, _0x4edbf7, _0x599f2f, _0x5d541f, _0x4ad9c9, _0x491f7e, _0x89a8fd, _0x368d4f);
  686. break;
  687. case 17:
  688. _0x56f20c.pid === _0x4edbf7 && (_0x56f20c.coinage(), _0x56f20c.out.push(_0xd026c6.encode(_0x5d541f, _0x4ad9c9, _0xd3ee2a.encode(_0x491f7e, _0x89a8fd), _0x368d4f))), _0x13efc1 = 98307, _0x56f20c.world.getZone(_0x5d541f, _0x4ad9c9).replace(_0x491f7e, _0x89a8fd, _0x13efc1), _0x56f20c.world.getZone(_0x5d541f, _0x4ad9c9).coin(_0x491f7e, _0x89a8fd + 1), _0x3b5639.GEN_FUNC.BUMP(_0x56f20c, _0x4edbf7, _0x599f2f, _0x5d541f, _0x4ad9c9, _0x491f7e, _0x89a8fd, _0x368d4f);
  689. }
  690. }
  691. },
  692. 81: {
  693. 'NAME': "WARP TILE",
  694. 'COLLIDE': !1,
  695. 'HIDDEN': !1,
  696. 'ASYNC': !0,
  697. 'TRIGGER': function(_0x4c53f1, _0x39f4fb, _0x3d9d40, _0x514e8f, _0x5edd77, _0x499d07, _0xc2a990, _0x67c87d) {
  698. switch (_0x67c87d) {
  699. case 0:
  700. _0x4c53f1.pid === _0x39f4fb && _0x4c53f1.getPlayer().warp(_0x3d9d40.data);
  701. }
  702. }
  703. },
  704. 82: {
  705. 'NAME': "WARP PIPE SLOW",
  706. 'COLLIDE': !0,
  707. 'HIDDEN': !1,
  708. 'ASYNC': !0,
  709. 'TRIGGER': function(_0x2df590, _0x1b52ba, _0x4e8db4, _0x43c6fc, _0x1ee2ea, _0x277f9c, _0xc88f33, _0x3de2b1) {
  710. switch (_0x3de2b1) {
  711. case 1:
  712. if (_0x2df590.pid === _0x1b52ba) {
  713. _0x1b52ba = _0x2df590.getPlayer();
  714. _0x3de2b1 = _0x2df590.world.getZone(_0x43c6fc, _0x1ee2ea).getTile(_0x4628a4.make(_0x277f9c - 1, _0xc88f33));
  715. _0x2df590 = _0x2df590.world.getZone(_0x43c6fc, _0x1ee2ea).getTile(_0x4628a4.make(_0x277f9c + 1, _0xc88f33));
  716. if (_0x3de2b1.definition !== this)
  717. if (_0x2df590.definition === this) _0x277f9c += 1;
  718. else break;
  719. 0.45 >= Math.abs(_0x1b52ba.pos['x'] + 0.5 * _0x1b52ba.dim['x'] - _0x277f9c) && _0x1b52ba.pipe(2, _0x4e8db4.data, 85);
  720. }
  721. }
  722. }
  723. },
  724. 83: {
  725. 'NAME': "WARP PIPE RIGHT SLOW",
  726. 'COLLIDE': !0,
  727. 'HIDDEN': !1,
  728. 'ASYNC': !0,
  729. 'TRIGGER': function(_0x4378d9, _0x4adc1d, _0x504d9a, _0x3b03a9, _0x46fb35, _0x4535d4, _0x4777e7, _0x2e124e) {
  730. switch (_0x2e124e) {
  731. case 2:
  732. _0x4378d9.pid === _0x4adc1d && _0x4378d9.getPlayer().pipe(4, _0x504d9a.data, 85);
  733. }
  734. }
  735. },
  736. 84: {
  737. 'NAME': "WARP PIPE FAST",
  738. 'COLLIDE': !0,
  739. 'HIDDEN': !1,
  740. 'ASYNC': !0,
  741. 'TRIGGER': function(_0x19fd13, _0x4f24aa, _0x109e41, _0x391d2a, _0x465adb, _0x281c3a, _0x4c1a0c, _0x9d2084) {
  742. switch (_0x9d2084) {
  743. case 1:
  744. if (_0x19fd13.pid === _0x4f24aa) {
  745. _0x4f24aa = _0x19fd13.getPlayer();
  746. _0x9d2084 = _0x19fd13.world.getZone(_0x391d2a, _0x465adb).getTile(_0x4628a4.make(_0x281c3a - 1, _0x4c1a0c));
  747. _0x19fd13 = _0x19fd13.world.getZone(_0x391d2a, _0x465adb).getTile(_0x4628a4.make(_0x281c3a + 1, _0x4c1a0c));
  748. if (_0x9d2084.definition !== this)
  749. if (_0x19fd13.definition === this) _0x281c3a += 1;
  750. else break;
  751. 0.45 >= Math.abs(_0x4f24aa.pos['x'] + 0.5 * _0x4f24aa.dim['x'] - _0x281c3a) && _0x4f24aa.pipe(2, _0x109e41.data, 0);
  752. }
  753. }
  754. }
  755. },
  756. 85: {
  757. 'NAME': "WARP PIPE RIGHT FAST",
  758. 'COLLIDE': !0,
  759. 'HIDDEN': !1,
  760. 'ASYNC': !0,
  761. 'TRIGGER': function(_0x4b20a3, _0x36ba9d, _0x341af0, _0x249dda, _0x604874, _0x17e9c4, _0x3e4d4e, _0x4a7bb5) {
  762. switch (_0x4a7bb5) {
  763. case 2:
  764. _0x4b20a3.pid === _0x36ba9d && _0x4b20a3.getPlayer().pipe(4, _0x341af0.data, 0);
  765. }
  766. }
  767. },
  768. 86: {
  769. 'NAME': "LEVEL END WARP",
  770. 'COLLIDE': !1,
  771. 'HIDDEN': !1,
  772. 'ASYNC': !0,
  773. 'TRIGGER': function(_0x21814c, _0x1a4128, _0x40a03c, _0x249015, _0x5e0c39, _0x4d8918, _0x70a6e6, _0x3b650d) {
  774. switch (_0x3b650d) {
  775. case 0:
  776. _0x21814c.pid === _0x1a4128 && _0x21814c.levelWarp(_0x40a03c.data);
  777. }
  778. }
  779. },
  780. 160: {
  781. 'NAME': "FLAGPOLE",
  782. 'COLLIDE': !1,
  783. 'HIDDEN': !1,
  784. 'ASYNC': !0,
  785. 'TRIGGER': function(_0x16c24a, _0x23e1cb, _0x424d3a, _0x51ec1c, _0x289b9d, _0x3e7c0d, _0x5b082b, _0x5a518a) {
  786. switch (_0x5a518a) {
  787. case 0:
  788. _0x16c24a.pid === _0x23e1cb && (_0x16c24a = _0x16c24a.getPlayer(), _0x16c24a.pos['x'] >= _0x3e7c0d && _0x16c24a.pole(_0x4628a4.make(_0x3e7c0d, _0x5b082b)));
  789. }
  790. }
  791. },
  792. 165: {
  793. 'NAME': "VINE",
  794. 'COLLIDE': !1,
  795. 'HIDDEN': !1,
  796. 'ASYNC': !0,
  797. 'TRIGGER': function(_0x55aeb2, _0x277db7, _0x48f91c, _0x57805c, _0x1224ae, _0x2c0655, _0x5064fb, _0xf5fa50) {
  798. switch (_0xf5fa50) {
  799. case 0:
  800. _0x55aeb2.pid === _0x277db7 && (_0x55aeb2 = _0x55aeb2.getPlayer(), _0x55aeb2.pos['x'] >= _0x2c0655 && _0x55aeb2.pos['x'] <= _0x2c0655 + 1 && _0x55aeb2.vine(_0x4628a4.make(_0x2c0655, _0x5064fb), _0x48f91c.data));
  801. }
  802. }
  803. },
  804. 240: {
  805. 'NAME': "VOTE BLOCK",
  806. 'COLLIDE': !0,
  807. 'HIDDEN': !1,
  808. 'ASYNC': !1,
  809. 'TRIGGER': function(_0x4213f5, _0x52b2e0, _0x12a943, _0x32176b, _0x29f2c8, _0x5369b0, _0x24087f, _0x529914) {
  810. switch (_0x529914) {
  811. case 16:
  812. _0x4213f5.pid === _0x52b2e0 && _0x4213f5.send({
  813. 'type': "g50"
  814. });
  815. var _0x159bb6 = 98307;
  816. _0x4213f5.world.getZone(_0x32176b, _0x29f2c8).replace(_0x5369b0, _0x24087f, _0x159bb6);
  817. _0x4213f5.createObject(_0x438bb6['ID'], _0x32176b, _0x29f2c8, _0x4628a4.make(_0x5369b0, _0x24087f + 1), [_0xd3ee2a.encode(_0x5369b0, _0x24087f)]);
  818. _0x3b5639.GEN_FUNC.BUMP(_0x4213f5, _0x52b2e0, _0x12a943, _0x32176b, _0x29f2c8, _0x5369b0, _0x24087f, _0x529914);
  819. break;
  820. case 17:
  821. _0x4213f5.pid === _0x52b2e0 && _0x4213f5.send({
  822. 'type': "g50"
  823. }), _0x159bb6 = 98307, _0x4213f5.world.getZone(_0x32176b, _0x29f2c8).replace(_0x5369b0, _0x24087f, _0x159bb6), _0x4213f5.createObject(_0x438bb6['ID'], _0x32176b, _0x29f2c8, _0x4628a4.make(_0x5369b0, _0x24087f + 1), [_0xd3ee2a.encode(_0x5369b0, _0x24087f)]), _0x3b5639.GEN_FUNC.BUMP(_0x4213f5, _0x52b2e0, _0x12a943, _0x32176b, _0x29f2c8, _0x5369b0, _0x24087f, _0x529914);
  824. }
  825. }
  826. }
  827. };
  828. var _0x1befeb = {},
  829. _0x47673d = {
  830. 'DESIGNATION': 2,
  831. 'BYTES': 3,
  832. 'decode': function(_0x305412) {
  833. return {
  834. 'designation': _0x47673d.DESIGNATION,
  835. 'pid': _0x305412[1] & 255 | _0x305412[0] << 8 & 0xff00
  836. };
  837. }
  838. },
  839. _0xd472e9 = {
  840. 'DESIGNATION': 16,
  841. 'BYTES': 9,
  842. 'encode': function(_0x46a31e, _0xf900fe, _0x5566a4) {
  843. return new Uint8Array([_0xd472e9.DESIGNATION, _0x46a31e, _0xf900fe, _0x5566a4 >> 24 & 0xff, _0x5566a4 >> 16 & 0xff, _0x5566a4 >> 8 & 0xff, _0x5566a4 & 255]);
  844. },
  845. 'decode': function(_0x29ae3a) {
  846. return {
  847. 'designation': _0xd472e9.DESIGNATION,
  848. 'pid': _0x29ae3a[1] & 255 | _0x29ae3a[0] << 8 & 0xff00,
  849. 'level': _0x29ae3a[2],
  850. 'zone': _0x29ae3a[3],
  851. 'pos': _0x29ae3a[7] & 255 | _0x29ae3a[6] << 8 & 0xff00 | _0x29ae3a[5] << 16 & 0xff0000 | _0x29ae3a[4] << 24 & 0xff0000
  852. };
  853. }
  854. },
  855. _0x2befb4 = {
  856. 'DESIGNATION': 17,
  857. 'BYTES': 3,
  858. 'encode': function() {
  859. return new Uint8Array([_0x2befb4.DESIGNATION]);
  860. },
  861. 'decode': function(_0x568c2f) {
  862. return {
  863. 'designation': _0x2befb4.DESIGNATION,
  864. 'pid': _0x568c2f[1] & 255 | _0x568c2f[0] << 8 & 0xff00
  865. };
  866. }
  867. },
  868. _0xebf263 = {
  869. 'DESIGNATION': 18,
  870. 'BYTES': 15,
  871. 'encode': function(_0x480942, _0xbd5377, _0x547cf0, _0x363a8c, _0x523fa2) {
  872. _0x547cf0 = new Float32Array([_0x547cf0['x'], _0x547cf0['y']]);
  873. _0x547cf0 = new Uint8Array(_0x547cf0.buffer);
  874. return new Uint8Array([_0xebf263.DESIGNATION, _0x480942, _0xbd5377, _0x547cf0[3], _0x547cf0[2], _0x547cf0[1], _0x547cf0[0], _0x547cf0[7], _0x547cf0[6], _0x547cf0[5], _0x547cf0[4], _0x363a8c, _0x523fa2]);
  875. },
  876. 'decode': function(_0x525257) {
  877. var _0xf538f2 = new Uint8Array([_0x525257[4], _0x525257[5], _0x525257[6], _0x525257[7]]),
  878. _0x14829b = new Uint8Array([_0x525257[8], _0x525257[9], _0x525257[10], _0x525257[11]]),
  879. _0xf538f2 = new DataView(_0xf538f2.buffer),
  880. _0x14829b = new DataView(_0x14829b.buffer);
  881. return {
  882. 'designation': _0xebf263.DESIGNATION,
  883. 'pid': _0x525257[1] & 255 | _0x525257[0] << 8 & 0xff00,
  884. 'level': _0x525257[2],
  885. 'zone': _0x525257[3],
  886. 'pos': _0x4628a4.make(_0xf538f2.getFloat32(0), _0x14829b.getFloat32(0)),
  887. 'sprite': _0x525257[12],
  888. 'reverse': 0 !== _0x525257[13]
  889. };
  890. }
  891. },
  892. _0x22483c = {
  893. 'DESIGNATION': 19,
  894. 'BYTES': 4,
  895. 'encode': function(_0x4a8054) {
  896. return new Uint8Array([_0x22483c.DESIGNATION, _0x4a8054]);
  897. },
  898. 'decode': function(_0x187db2) {
  899. return {
  900. 'designation': _0x22483c.DESIGNATION,
  901. 'pid': _0x187db2[1] & 255 | _0x187db2[0] << 8 & 0xff00,
  902. 'type': _0x187db2[2]
  903. };
  904. }
  905. },
  906. _0x137dca = {
  907. 'DESIGNATION': 23,
  908. 'BYTES': 5,
  909. 'encode': function(_0x293a98) {
  910. return new Uint8Array([_0x137dca.DESIGNATION, _0x293a98 >> 8 & 0xff, _0x293a98 & 255]);
  911. },
  912. 'decode': function(_0x399c76) {
  913. return {
  914. 'designation': _0x137dca.DESIGNATION,
  915. 'pid': _0x399c76[1] & 255 | _0x399c76[0] << 8 & 0xff00,
  916. 'killer': _0x399c76[3] & 255 | _0x399c76[2] << 8 & 0xff00
  917. };
  918. }
  919. },
  920. _0x219ba8 = {
  921. 'DESIGNATION': 24,
  922. 'BYTES': 5,
  923. 'encode': function() {
  924. return new Uint8Array([_0x219ba8.DESIGNATION]);
  925. },
  926. 'decode': function(_0x5e61f0) {
  927. return {
  928. 'designation': _0x219ba8.DESIGNATION,
  929. 'pid': _0x5e61f0[1] & 255 | _0x5e61f0[0] << 8 & 0xff00,
  930. 'result': _0x5e61f0[2],
  931. 'extra': _0x5e61f0[3]
  932. };
  933. }
  934. },
  935. _0x482c1d = {
  936. 'DESIGNATION': 25,
  937. 'BYTES': 3,
  938. 'encode': function() {
  939. return new Uint8Array([_0x482c1d.DESIGNATION]);
  940. }
  941. },
  942. _0x217d86 = {
  943. 'DESIGNATION': 32,
  944. 'BYTES': 10,
  945. 'encode': function(_0x212298, _0x5ad080, _0xec07d0, _0x52c06d) {
  946. return new Uint8Array([_0x217d86.DESIGNATION, _0x212298, _0x5ad080, _0xec07d0 >> 24 & 0xff, _0xec07d0 >> 16 & 0xff, _0xec07d0 >> 8 & 0xff, _0xec07d0 & 255, _0x52c06d]);
  947. },
  948. 'decode': function(_0x181a0e) {
  949. return {
  950. 'designation': _0x217d86.DESIGNATION,
  951. 'pid': _0x181a0e[1] & 255 | _0x181a0e[0] << 8 & 0xff00,
  952. 'level': _0x181a0e[2],
  953. 'zone': _0x181a0e[3],
  954. 'oid': _0x181a0e[7] & 255 | _0x181a0e[6] << 8 & 0xff00 | _0x181a0e[5] << 16 & 0xff0000 | _0x181a0e[4] << 24 & 0xff0000,
  955. 'type': _0x181a0e[8]
  956. };
  957. }
  958. },
  959. _0xd026c6 = {
  960. 'DESIGNATION': 48,
  961. 'BYTES': 10,
  962. 'encode': function(_0x5bf975, _0xbd3901, _0x5b4b84, _0x4aa955) {
  963. return new Uint8Array([_0xd026c6.DESIGNATION, _0x5bf975, _0xbd3901, _0x5b4b84 >> 24 & 0xff, _0x5b4b84 >> 16 & 0xff, _0x5b4b84 >> 8 & 0xff, _0x5b4b84 & 255, _0x4aa955]);
  964. },
  965. 'decode': function(_0x4b27ec) {
  966. return {
  967. 'designation': _0xd026c6.DESIGNATION,
  968. 'pid': _0x4b27ec[1] & 255 | _0x4b27ec[0] << 8 & 0xff00,
  969. 'level': _0x4b27ec[2],
  970. 'zone': _0x4b27ec[3],
  971. 'pos': _0xd3ee2a.decode(_0x4b27ec[7] & 255 | _0x4b27ec[6] << 8 & 0xff00 | _0x4b27ec[5] << 16 & 0xff0000 | _0x4b27ec[4] << 24 & 0xff0000),
  972. 'type': _0x4b27ec[8]
  973. };
  974. }
  975. },
  976. _0x5b3c43 = function(_0x1ae564) {
  977. for (var _0x1cd96c = [], _0x1b12e7 = 0; _0x1b12e7 < _0x1ae564.length; _0x1b12e7++)
  978. for (var _0x546e07 = 0; _0x546e07 < _0x1ae564[_0x1b12e7].length; _0x546e07++) _0x1cd96c.push(_0x1ae564[_0x1b12e7][_0x546e07]);
  979. return new Uint8Array(_0x1cd96c);
  980. };
  981. _0x1befeb.decode = function(_0x45cd70) {
  982. for (var _0x3e943d = [], _0x141cee = 0; _0x141cee < _0x45cd70.length;) switch (_0x45cd70.slice(_0x141cee++, _0x141cee)[0]) {
  983. case 2:
  984. _0x3e943d.push(_0x47673d.decode(_0x45cd70.slice(_0x141cee, _0x141cee += _0x47673d.BYTES - 1)));
  985. break;
  986. case 16:
  987. _0x3e943d.push(_0xd472e9.decode(_0x45cd70.slice(_0x141cee, _0x141cee += _0xd472e9.BYTES - 1)));
  988. break;
  989. case 17:
  990. _0x3e943d.push(_0x2befb4.decode(_0x45cd70.slice(_0x141cee, _0x141cee += _0x2befb4.BYTES - 1)));
  991. break;
  992. case 18:
  993. _0x3e943d.push(_0xebf263.decode(_0x45cd70.slice(_0x141cee, _0x141cee += _0xebf263.BYTES - 1)));
  994. break;
  995. case 19:
  996. _0x3e943d.push(_0x22483c.decode(_0x45cd70.slice(_0x141cee, _0x141cee += _0x22483c.BYTES - 1)));
  997. break;
  998. case 23:
  999. _0x3e943d.push(_0x137dca.decode(_0x45cd70.slice(_0x141cee, _0x141cee += _0x137dca.BYTES - 1)));
  1000. break;
  1001. case 24:
  1002. _0x3e943d.push(_0x219ba8.decode(_0x45cd70.slice(_0x141cee, _0x141cee += _0x219ba8.BYTES - 1)));
  1003. break;
  1004. case 32:
  1005. _0x3e943d.push(_0x217d86.decode(_0x45cd70.slice(_0x141cee, _0x141cee += _0x217d86.BYTES - 1)));
  1006. break;
  1007. case 48:
  1008. _0x3e943d.push(_0xd026c6.decode(_0x45cd70.slice(_0x141cee, _0x141cee += _0xd026c6.BYTES - 1)));
  1009. break;
  1010. default:
  1011. return _0x5c48db && _0x5c48db.menu.warn.show("Error decoding binary data!"), _0x3e943d;
  1012. }
  1013. return _0x3e943d;
  1014. };
  1015. "use strict";
  1016. var _0x4c4bae = {};
  1017. _0x4c4bae.intersection = function(_0x3d1f76, _0xa10d77, _0x566a65, _0xf78482) {
  1018. return _0x566a65.x < _0x3d1f76.x + _0xa10d77.x && _0x566a65.x + _0xf78482.x > _0x3d1f76.x && _0x566a65.y < _0x3d1f76.y + _0xa10d77.y && _0x566a65.y + _0xf78482.y > _0x3d1f76.y;
  1019. };
  1020. _0x4c4bae.inside = function(_0x281185, _0x3a5b8e, _0x58830d) {
  1021. return _0x3a5b8e.x < _0x281185.x && _0x3a5b8e.x + _0x58830d.x > _0x281185.x && _0x3a5b8e.y < _0x281185.y && _0x3a5b8e.y + _0x58830d.y > _0x281185.y;
  1022. };
  1023. "use strict";
  1024. function Menu() {
  1025. this.body = document.getElementById("body");
  1026. window.history.pushState({
  1027. 'html': "index.html",
  1028. 'pageTitle': "Infringe Royale"
  1029. }, '', '#');
  1030. var _0x127a01 = [{
  1031. 'id': "warn",
  1032. 'obj': new _0x3bc03d()
  1033. }, {
  1034. 'id': "error",
  1035. 'obj': new _0x22b51b()
  1036. }, {
  1037. 'id': "load",
  1038. 'obj': new _0x19c420()
  1039. }, {
  1040. 'id': "disclaim",
  1041. 'obj': new _0x324007()
  1042. }, {
  1043. 'id': "main",
  1044. 'obj': new _0x453b9f()
  1045. }, {
  1046. 'id': "name",
  1047. 'obj': new _0x27685a()
  1048. }, {
  1049. 'id': "game",
  1050. 'obj': new _0x5748a6()
  1051. }];
  1052. this.menus = [];
  1053. for (var _0x4193f9 = 0; _0x4193f9 < _0x127a01.length; _0x4193f9++) this.menus[_0x4193f9] = _0x127a01[_0x4193f9].obj, this[_0x127a01[_0x4193f9]['id']] = _0x127a01[_0x4193f9].obj;
  1054. this.lastNav = '';
  1055. var _0x48acbe = this;
  1056. window.onpopstate = function(_0x127a01) {
  1057. if (_0x48acbe[_0x48acbe.lastNav] && _0x48acbe[_0x48acbe.lastNav].onBack) _0x48acbe.onBack();
  1058. else _0x127a01.state && "Infringe Royale" !== _0x127a01.state.pageTitle ? (document.getElementById("content").innerHTML = _0x127a01.state.html, document.title = _0x127a01.state.pageTitle) : _0x127a01.state && "Infringe Royale" === _0x127a01.state.pageTitle && window.history.back();
  1059. };
  1060. this.hideAll();
  1061. this.background('c');
  1062. this.body.style.display = "block";
  1063. }
  1064. Menu.prototype.hideAll = function() {
  1065. for (var _0xde3f37 = 1; _0xde3f37 < this.menus.length; _0xde3f37++) this.menus[_0xde3f37].hide();
  1066. };
  1067. Menu.prototype.background = function(_0x1c2b65) {
  1068. if (_0x1c2b65 !== this.bid) {
  1069. switch (_0x1c2b65) {
  1070. case 'b':
  1071. _0x1c2b65 = "background-b";
  1072. break;
  1073. case 'c':
  1074. _0x1c2b65 = "background-c";
  1075. break;
  1076. default:
  1077. _0x1c2b65 = "background-a";
  1078. }
  1079. this.body.classList.remove("background-a");
  1080. this.body.classList.remove("background-b");
  1081. this.body.classList.remove("background-c");
  1082. this.body.classList.add(_0x1c2b65);
  1083. }
  1084. };
  1085. Menu.prototype.navigation = function(_0x3ddd1e, _0x10cd49) {
  1086. this.lastNav = _0x3ddd1e;
  1087. window.history.replaceState({
  1088. 'html': "index.html",
  1089. 'pageTitle': "Infringe Royale"
  1090. }, _0x10cd49, '#' + _0x10cd49);
  1091. };
  1092. Menu.prototype.onBack = function() {
  1093. window.history.pushState({
  1094. 'html': "index.html",
  1095. 'pageTitle': "Infringe Royale"
  1096. }, '', '#');
  1097. this[this.lastNav].onBack();
  1098. };
  1099. "use strict";
  1100. function _0x3bc03d() {
  1101. this.element = document.getElementById("warn");
  1102. this.hide();
  1103. this.timeout = void 0;
  1104. }
  1105. _0x3bc03d.prototype.show = function(_0xf4b076) {
  1106. this.element.innerHTML = "<img src='img/home/warn.png' class='warn-ico'/> " + _0xf4b076;
  1107. console.warn("##WARN## " + _0xf4b076);
  1108. this.timeout && clearTimeout(this.timeout);
  1109. var _0x5c6f93 = this.element;
  1110. this.timeout = setTimeout(function() {
  1111. _0x5c6f93.style.display = "none";
  1112. }, 5000);
  1113. this.element.style.display = "block";
  1114. };
  1115. _0x3bc03d.prototype.hide = function() {
  1116. this.element.style.display = "none";
  1117. };
  1118. "use strict";
  1119. function _0x22b51b() {
  1120. this.element = document.getElementById("error");
  1121. this.error = document.getElementById("error-message");
  1122. }
  1123. _0x22b51b.prototype.show = function(_0x268c96, _0x41574c, _0xa9cdc9) {
  1124. _0x5c48db.net.close();
  1125. _0x5c48db.menu.hideAll();
  1126. _0x5c48db.menu.navigation("error", "error");
  1127. _0x5c48db.menu.background('b');
  1128. this.error.innerHTML = _0x268c96;
  1129. _0x41574c && console.warn("##ERROR## " + _0x41574c);
  1130. _0xa9cdc9 && console.warn("##TRACE## " + _0xa9cdc9);
  1131. this.element.style.display = "block";
  1132. };
  1133. _0x22b51b.prototype.hide = function() {
  1134. this.element.style.display = "none";
  1135. };
  1136. "use strict";
  1137. function _0x19c420() {
  1138. this.element = document.getElementById("load");
  1139. }
  1140. _0x19c420.prototype.show = function() {
  1141. _0x5c48db.menu.hideAll();
  1142. _0x5c48db.menu.background('a');
  1143. this.element.style.display = "block";
  1144. };
  1145. _0x19c420.prototype.hide = function() {
  1146. this.element.style.display = "none";
  1147. };
  1148. "use strict";
  1149. function _0x324007() {
  1150. this.element = document.getElementById("disclaim");
  1151. this.linkElement = document.getElementById("link");
  1152. }
  1153. _0x324007.prototype.show = function(_0x3ca171) {
  1154. _0x5c48db.menu.hideAll();
  1155. _0x5c48db.menu.background('c');
  1156. this.linkElement.style.display = "block";
  1157. this.element.style.display = "block";
  1158. };
  1159. _0x324007.prototype.hide = function() {
  1160. this.linkElement.style.display = "none";
  1161. this.element.style.display = "none";
  1162. };
  1163. "use strict";
  1164. function _0x453b9f() {
  1165. this.element = document.getElementById("main");
  1166. this.linkElement = document.getElementById("link");
  1167. this.winElement = document.getElementById("win");
  1168. this.launchBtn = document.getElementById("main-launch");
  1169. this.number = document.getElementById("main-number");
  1170. var _0x32f9e3 = this;
  1171. this.launchBtn.onclick = function() {
  1172. _0x32f9e3.launch();
  1173. };
  1174. }
  1175. _0x453b9f.prototype.launch = function() {
  1176. _0x5c48db.menu.name.show();
  1177. };
  1178. _0x453b9f.prototype.show = function(_0x220cca) {
  1179. _0x5c48db.menu.hideAll();
  1180. _0x5c48db.menu.navigation("main", "main");
  1181. _0x5c48db.menu.background('a');
  1182. _0x220cca && (this.number.innerHTML = _0x220cca);
  1183. _0x220cca = Cookies.get("epic_gamer_moments");
  1184. var _0x4a6dc1 = Cookies.get("heated_gamer_moments");
  1185. this.winElement.style.display = "block";
  1186. this.winElement.innerHTML = "Wins: " + (_0x220cca ? _0x220cca : '0') + " <span class='kill'>Kills: " + (_0x4a6dc1 ? _0x4a6dc1 : '0') + "</span>";
  1187. this.linkElement.style.display = "block";
  1188. this.element.style.display = "block";
  1189. };
  1190. _0x453b9f.prototype.hide = function() {
  1191. this.linkElement.style.display = "none";
  1192. this.element.style.display = "none";
  1193. };
  1194. "use strict";
  1195. function _0x27685a() {
  1196. this.element = document.getElementById("name");
  1197. this.linkElement = document.getElementById("link");
  1198. this.nameInput = document.getElementById("name-input");
  1199. this.teamInput = document.getElementById("team-input");
  1200. this.launchBtn = document.getElementById("name-launch");
  1201. var _0x25533e = this;
  1202. this.launchBtn.onclick = function() {
  1203. _0x25533e.launch();
  1204. };
  1205. }
  1206. _0x27685a.prototype.launch = function() {
  1207. Cookies.set("name", this.nameInput.value, {
  1208. 'expires': 30
  1209. });
  1210. Cookies.set("team", this.teamInput.value, {
  1211. 'expires': 30
  1212. });
  1213. _0x5c48db.join(this.nameInput.value, this.teamInput.value);
  1214. };
  1215. _0x27685a.prototype.show = function() {
  1216. _0x5c48db.menu.hideAll();
  1217. _0x5c48db.menu.navigation("name", "name");
  1218. _0x5c48db.menu.background('a');
  1219. var _0x3c4f13 = Cookies.get("name"),
  1220. _0x5b5426 = Cookies.get("team");
  1221. this.nameInput.value = _0x3c4f13 ? _0x3c4f13 : '';
  1222. this.teamInput.value = _0x5b5426 ? _0x5b5426 : '';
  1223. this.linkElement.style.display = "block";
  1224. this.element.style.display = "block";
  1225. };
  1226. _0x27685a.prototype.hide = function() {
  1227. this.linkElement.style.display = "none";
  1228. this.element.style.display = "none";
  1229. };
  1230. _0x27685a.prototype.onBack = function() {
  1231. _0x5c48db.menu.main.show();
  1232. };
  1233. "use strict";
  1234. function _0x5748a6() {
  1235. this.element = document.getElementById("game");
  1236. }
  1237. _0x5748a6.prototype.show = function() {
  1238. _0x5c48db.menu.hideAll();
  1239. _0x5c48db.menu.navigation("game", "game");
  1240. _0x5c48db.menu.background('c');
  1241. this.element.style.display = "block";
  1242. };
  1243. _0x5748a6.prototype.hide = function() {
  1244. this.element.style.display = "none";
  1245. };
  1246. _0x5748a6.prototype.onBack = function() {
  1247. _0x5c48db.close();
  1248. };
  1249. "use strict";
  1250. function Net() {}
  1251. Net.prototype.connected = function() {
  1252. return void 0 !== this.webSocket && this.webSocket.readyState !== WebSocket.CLOSED;
  1253. };
  1254. Net.prototype.connect = function(_0x38ae30, _0x5c2e1b) {
  1255. var _0xe2d302 = window.location.host;
  1256. this.prefName = _0x38ae30;
  1257. this.prefTeam = _0x5c2e1b;
  1258. var _0x5a21e0 = this;
  1259. this.connected() ? _0x5c48db.menu.error.show("Connection already open. State error.") : (this.webSocket = new WebSocket("ws://" + _0xe2d302 + "/royale/ws"), this.webSocket.binaryType = "arraybuffer", this.webSocket.onopen = function(_0x38ae30) {
  1260. "open" !== _0x38ae30.type && _0x5c48db.menu.error.show("Error. WS open event has unexpected result.");
  1261. }, this.webSocket.onmessage = function(_0x38ae30) {
  1262. _0x38ae30.data instanceof ArrayBuffer ? _0x5a21e0.handleBinary(new Uint8Array(_0x38ae30.data)) : _0x5a21e0.handlePacket(JSON.parse(_0x38ae30.data));
  1263. }, this.webSocket.onclose = function(_0x38ae30) {
  1264. _0x5a21e0.webSocket = void 0;
  1265. _0x5c48db.menu.error.show("Connection Interrupted");
  1266. });
  1267. };
  1268. Net.prototype.handlePacket = function(_0x40daaa) {
  1269. if (void 0 === this.state || !this.state.handlePacket(_0x40daaa)) switch (_0x40daaa.type) {
  1270. case "s00":
  1271. this.setState(_0x40daaa.state);
  1272. break;
  1273. case "s01":
  1274. this.handleBlob(_0x40daaa.packets);
  1275. break;
  1276. case "s02":
  1277. break;
  1278. case "x00":
  1279. _0x5c48db.menu.error.show("Server Exception", _0x40daaa.message);
  1280. break;
  1281. case "x01":
  1282. _0x5c48db.menu.error.show("Server Exception", _0x40daaa.message, _0x40daaa.trace);
  1283. break;
  1284. default:
  1285. _0x5c48db.menu.error.show("Recieved invalid packet type: " + _0x40daaa.type, JSON.stringify(_0x40daaa));
  1286. }
  1287. };
  1288. Net.prototype.handleBinary = function(_0x4ac1dc) {
  1289. this.state.handleBinary(_0x4ac1dc);
  1290. };
  1291. Net.prototype.handleBlob = function(_0xb95200) {
  1292. for (var _0x308544 = 0; _0x308544 < _0xb95200.length; _0x308544++) this.handlePacket(_0xb95200[_0x308544]);
  1293. };
  1294. Net.prototype.setState = function(_0x2c5cd1) {
  1295. void 0 !== this.state && this.state.destroy();
  1296. switch (_0x2c5cd1) {
  1297. case 'l':
  1298. this.state = new _0x23dcc5();
  1299. break;
  1300. case 'g':
  1301. this.state = new _0x55a279();
  1302. break;
  1303. default:
  1304. _0x5c48db.menu.error.show("Received invalid state ID: " + _0x2c5cd1);
  1305. return;
  1306. }
  1307. this.state.ready();
  1308. };
  1309. Net.prototype.send = function(_0x386ea2) {
  1310. this.webSocket.send(JSON.stringify(_0x386ea2));
  1311. };
  1312. Net.prototype.sendBinary = function(_0x13f0a6) {
  1313. this.webSocket.send(_0x13f0a6.buffer);
  1314. };
  1315. Net.prototype.close = function() {
  1316. void 0 !== this.webSocket && this.webSocket.close();
  1317. _0x5c48db.ingame() && _0x5c48db.game.destroy();
  1318. };
  1319. "use strict";
  1320. function _0x23dcc5() {}
  1321. _0x23dcc5.prototype.handlePacket = function(_0x4789de) {
  1322. switch (_0x4789de.type) {
  1323. case "l01":
  1324. return this.loggedIn(_0x4789de), !0;
  1325. default:
  1326. return !1;
  1327. }
  1328. };
  1329. _0x23dcc5.prototype.handleBinary = function(_0x4e8adf) {
  1330. _0x5c48db.menu.warn.show("Recieved unexpected binary data!");
  1331. };
  1332. _0x23dcc5.prototype.ready = function() {
  1333. this.send({
  1334. 'type': "l00",
  1335. 'name': _0x5c48db.net.prefName,
  1336. 'team': _0x5c48db.net.prefTeam
  1337. });
  1338. };
  1339. _0x23dcc5.prototype.loggedIn = function(_0x4992d1) {
  1340. _0x5c48db.net.name = _0x4992d1.name;
  1341. _0x5c48db.net.sid = _0x4992d1.sid;
  1342. console.log("Logged in: " + _0x4992d1.name + " :: " + _0x4992d1.team + " // " + _0x4992d1.sid);
  1343. };
  1344. _0x23dcc5.prototype.send = function(_0x43fbbf) {
  1345. _0x5c48db.net.send(_0x43fbbf);
  1346. };
  1347. _0x23dcc5.prototype.type = function() {
  1348. return 'l';
  1349. };
  1350. _0x23dcc5.prototype.destroy = function() {};
  1351. "use strict";
  1352. function _0x55a279() {
  1353. this.pingOut = !1;
  1354. this.pingLast = 0;
  1355. this.pingFrame = 90;
  1356. }
  1357. _0x55a279.prototype.handlePacket = function(_0x5852f4) {
  1358. switch (_0x5852f4.type) {
  1359. case "g01":
  1360. return this.load(_0x5852f4), !0;
  1361. case "g06":
  1362. return this.globalWarn(_0x5852f4), !0;
  1363. case "g21":
  1364. return this.recievePing(_0x5852f4), !0;
  1365. default:
  1366. return _0x5c48db.ingame() ? _0x5c48db.game.handlePacket(_0x5852f4) : !1;
  1367. }
  1368. };
  1369. _0x55a279.prototype.handleBinary = function(_0x1ae461) {
  1370. _0x5c48db.ingame() && _0x5c48db.game.handleBinary(_0x1ae461);
  1371. };
  1372. _0x55a279.prototype.ready = function() {
  1373. this.send({
  1374. 'type': "g00"
  1375. });
  1376. };
  1377. _0x55a279.prototype.load = function(_0x6240d9) {
  1378. var _0x2485b5 = this;
  1379. $.ajax({
  1380. 'url': "http://" + window.location.host + "/royale/game/" + _0x6240d9.game,
  1381. 'type': "GET",
  1382. 'timeout': 5000,
  1383. 'success': function(_0x6240d9) {
  1384. _0x5c48db.load(_0x6240d9);
  1385. _0x2485b5.send({
  1386. 'type': "g03"
  1387. });
  1388. },
  1389. 'error': function() {
  1390. _0x5c48db.menu.error.show("Server returned FNF(404) for game file: " + _0x6240d9.game);
  1391. }
  1392. });
  1393. };
  1394. _0x55a279.prototype.globalWarn = function(_0x46a482) {
  1395. _0x5c48db.menu.warn.show(_0x46a482.message);
  1396. };
  1397. _0x55a279.prototype.sendPing = function() {
  1398. var _0x4e85e9 = _0x35d3bd.time.now();
  1399. this.pingOut && 999 > this.pingLast - _0x4e85e9 || (this.pingOut && (_0x5c48db.net.ping = 999), this.send({
  1400. 'type': "g21",
  1401. 'delta': _0x4e85e9
  1402. }), this.pingOut = !0);
  1403. };
  1404. _0x55a279.prototype.recievePing = function(_0xaadb97) {
  1405. var _0x134513 = _0x35d3bd.time.now();
  1406. _0x5c48db.net.ping = _0x134513 - _0xaadb97.delta;
  1407. this.pingOut = !1;
  1408. };
  1409. _0x55a279.prototype.send = function(_0x34b41a) {
  1410. _0x5c48db.net.send(_0x34b41a);
  1411. };
  1412. _0x55a279.prototype.type = function() {
  1413. return 'g';
  1414. };
  1415. _0x55a279.prototype.destroy = function() {};
  1416. "use strict";
  1417. function _0x2b132(_0x1011dd, _0x2bc95a, _0x123d8d, _0xb0017c) {
  1418. this.game = _0x1011dd;
  1419. this.level = _0x2bc95a;
  1420. this.zone = _0x123d8d;
  1421. this.pos = _0xb0017c;
  1422. this.sprite = this.state = void 0;
  1423. this.garbage = this.dead = this.reverse = !1;
  1424. this.sounds = [];
  1425. }
  1426. _0x2b132.ASYNC = !0;
  1427. _0x2b132['ID'] = 0;
  1428. _0x2b132.prototype.update = function(_0x34f8fc) {};
  1429. _0x2b132.prototype.step = function() {};
  1430. _0x2b132.prototype.sound = function() {
  1431. for (var _0xe404a4 = 0; _0xe404a4 < this.sounds.length; _0xe404a4++) {
  1432. var _0x29d0a1 = this.sounds[_0xe404a4];
  1433. _0x29d0a1.done() ? this.sounds.splice(_0xe404a4--, 1) : _0x29d0a1.position(this.pos);
  1434. }
  1435. };
  1436. _0x2b132.prototype.kill = function() {
  1437. this.dead = !0;
  1438. this.destroy();
  1439. };
  1440. _0x2b132.prototype.destroy = function() {
  1441. this.garbage = this.dead = !0;
  1442. };
  1443. _0x2b132.prototype.isTangible = function() {
  1444. return !this.dead && !this.disabled && this.dim;
  1445. };
  1446. _0x2b132.prototype.draw = function() {};
  1447. _0x2b132.prototype.play = function(_0x387076, _0x3ce43b, _0x307bee) {
  1448. var _0x5a9966 = this.game.getZone();
  1449. if (this.zone === _0x5a9966['id'] && this.level === _0x5a9966.level) return _0x387076 = this.game.audio.getSpatialAudio(_0x387076, _0x3ce43b, _0x307bee, "effect"), _0x387076.play(this.pos), this.sounds.push(_0x387076), _0x387076;
  1450. };
  1451. _0x2b132.OBJECT_LIST = [];
  1452. _0x2b132.REGISTER_OBJECT = function(_0xe1c0e5) {
  1453. _0x2b132.OBJECT_LIST.push(_0xe1c0e5);
  1454. };
  1455. _0x2b132.OBJECT = function(_0x569450) {
  1456. for (var _0xc3432b = 0; _0xc3432b < _0x2b132.OBJECT_LIST.length; _0xc3432b++) {
  1457. var _0x2f3e0e = _0x2b132.OBJECT_LIST[_0xc3432b];
  1458. if (_0x2f3e0e['ID'] === _0x569450) return _0x2f3e0e;
  1459. }
  1460. _0x5c48db.menu.warn.show("Invalid Object Class ID: " + _0x569450);
  1461. };
  1462. "use strict";
  1463. function _0x307949(_0x4d091b, _0x5602de, _0x93c981, _0x48ae31, _0x3fec2b) {
  1464. _0x2b132.call(this, _0x4d091b, _0x5602de, _0x93c981, _0x48ae31);
  1465. this.pid = _0x3fec2b;
  1466. this.anim = 0;
  1467. this.reverse = !1;
  1468. this.deadTimer = this.deadFreezeTimer = this.arrowFade = 0;
  1469. this.lastPos = this.pos;
  1470. this.dim = _0x4628a4.make(1, 0x1);
  1471. this.fallSpeed = this.moveSpeed = 0;
  1472. this.jumping = -1;
  1473. this.grounded = this.isSpring = this.isBounce = !1;
  1474. this.name = void 0;
  1475. this.starTimer = this.power = 0;
  1476. this.starMusic = void 0;
  1477. this.tfmTimer = this.damageTimer = 0;
  1478. this.tfmTarget = -1;
  1479. this.pipeWarp = void 0;
  1480. this.pipeTimer = 0;
  1481. this.pipeExt = this.pipeDir = -1;
  1482. this.poleTimer = this.pipeDelayLength = this.pipeDelay = 0;
  1483. this.poleSound = this.poleWait = !1;
  1484. this.vineWarp = void 0;
  1485. this.attackCharge = _0x307949.MAX_CHARGE;
  1486. this.attackTimer = 0;
  1487. this.autoTarget = void 0;
  1488. this.btnD = [0, 0x0];
  1489. this.btnBde = this.btnBg = this.btnB = this.btnA = !1;
  1490. this.setState(_0x307949.SNAME.STAND);
  1491. }
  1492. _0x307949.ASYNC = !1;
  1493. _0x307949['ID'] = 1;
  1494. _0x307949.NAME = "PLAYER";
  1495. _0x307949.ANIMATION_RATE = 3;
  1496. _0x307949.DIM_OFFSET = _0x4628a4.make(-0.05, 0);
  1497. _0x307949.DEAD_FREEZE_TIME = 7;
  1498. _0x307949.DEAD_TIME = 70;
  1499. _0x307949.DEAD_UP_FORCE = 0.65;
  1500. _0x307949.RUN_SPEED_MAX = 0.315;
  1501. _0x307949.MOVE_SPEED_MAX = 0.215;
  1502. _0x307949.MOVE_SPEED_ACCEL = 0.0125;
  1503. _0x307949.MOVE_SPEED_DECEL = 0.0225;
  1504. _0x307949.MOVE_SPEED_ACCEL_AIR = 0.0025;
  1505. _0x307949.STUCK_SLIDE_SPEED = 0.08;
  1506. _0x307949.FALL_SPEED_MAX = 0.45;
  1507. _0x307949.FALL_SPEED_ACCEL = 0.085;
  1508. _0x307949.BOUNCE_LENGTH_MIN = 1;
  1509. _0x307949.SPRING_LENGTH_MIN = 5;
  1510. _0x307949.SPRING_LENGTH_MAX = 14;
  1511. _0x307949.JUMP_LENGTH_MIN = 3;
  1512. _0x307949.JUMP_LENGTH_MAX = 7;
  1513. _0x307949.JUMP_SPEED_INC_THRESHOLD = [0.1, 0.2, 0.25];
  1514. _0x307949.JUMP_DECEL = 0.005;
  1515. _0x307949.BLOCK_BUMP_THRESHOLD = 0.12;
  1516. _0x307949.POWER_INDEX_SIZE = 32;
  1517. _0x307949.GENERIC_INDEX = 96;
  1518. _0x307949.DAMAGE_TIME = 45;
  1519. _0x307949.TRANSFORM_TIME = 18;
  1520. _0x307949.TRANSFORM_ANIMATION_RATE = 2;
  1521. _0x307949.STAR_LENGTH = 360;
  1522. _0x307949.PROJ_OFFSET = _0x4628a4.make(0.75, 1.5);
  1523. _0x307949.MAX_CHARGE = 60;
  1524. _0x307949.ATTACK_DELAY = 7;
  1525. _0x307949.ATTACK_CHARGE = 25;
  1526. _0x307949.ATTACK_ANIM_LENGTH = 3;
  1527. _0x307949.PIPE_TIME = 30;
  1528. _0x307949.PIPE_SPEED = 0.06;
  1529. _0x307949.PIPE_EXT_OFFSET = _0x4628a4.make(0.5, 0);
  1530. _0x307949.WEED_EAT_RADIUS = 3;
  1531. _0x307949.POLE_DELAY = 15;
  1532. _0x307949.POLE_SLIDE_SPEED = 0.15;
  1533. _0x307949.LEVEL_END_MOVE_OFF = _0x4628a4.make(10, 0x0);
  1534. _0x307949.CLIMB_SPEED = 0.125;
  1535. _0x307949.PLATFORM_SNAP_DIST = 0.15;
  1536. _0x307949.ARROW_SPRITE = 253;
  1537. _0x307949.ARROW_TEXT = "YOU";
  1538. _0x307949.ARROW_OFFSET = _0x4628a4.make(0, 0.1);
  1539. _0x307949.TEXT_OFFSET = _0x4628a4.make(0, 0.55);
  1540. _0x307949.TEXT_SIZE = 0.65;
  1541. _0x307949.TEXT_COLOR = "#FFFFFF";
  1542. _0x307949.ARROW_RAD_IN = 3;
  1543. _0x307949.ARROW_RAD_OUT = 7;
  1544. _0x307949.ARROW_THRESHOLD_MIN = 4;
  1545. _0x307949.ARROW_THRESHOLD_MAX = 6;
  1546. _0x307949.TEAM_OFFSET = _0x4628a4.make(0, 0x0);
  1547. _0x307949.TEAM_SIZE = 0.3;
  1548. _0x307949.TEAM_COLOR = "rgba(255,255,255,0.75)";
  1549. _0x307949.SPRITE = {};
  1550. _0x307949.SPRITE_LIST = [{
  1551. 'NAME': "S_STAND",
  1552. 'ID': 0,
  1553. 'INDEX': 13
  1554. }, {
  1555. 'NAME': "S_RUN0",
  1556. 'ID': 1,
  1557. 'INDEX': 10
  1558. }, {
  1559. 'NAME': "S_RUN1",
  1560. 'ID': 2,
  1561. 'INDEX': 11
  1562. }, {
  1563. 'NAME': "S_RUN2",
  1564. 'ID': 3,
  1565. 'INDEX': 12
  1566. }, {
  1567. 'NAME': "S_SLIDE",
  1568. 'ID': 4,
  1569. 'INDEX': 9
  1570. }, {
  1571. 'NAME': "S_FALL",
  1572. 'ID': 5,
  1573. 'INDEX': 8
  1574. }, {
  1575. 'NAME': "S_CLIMB0",
  1576. 'ID': 6,
  1577. 'INDEX': 6
  1578. }, {
  1579. 'NAME': "S_CLIMB1",
  1580. 'ID': 7,
  1581. 'INDEX': 7
  1582. }, {
  1583. 'NAME': "B_STAND",
  1584. 'ID': 32,
  1585. 'INDEX': [
  1586. [45],
  1587. [29]
  1588. ]
  1589. }, {
  1590. 'NAME': "B_DOWN",
  1591. 'ID': 33,
  1592. 'INDEX': [
  1593. [44],
  1594. [28]
  1595. ]
  1596. }, {
  1597. 'NAME': "B_RUN0",
  1598. 'ID': 34,
  1599. 'INDEX': [
  1600. [41],
  1601. [25]
  1602. ]
  1603. }, {
  1604. 'NAME': "B_RUN1",
  1605. 'ID': 35,
  1606. 'INDEX': [
  1607. [42],
  1608. [26]
  1609. ]
  1610. }, {
  1611. 'NAME': "B_RUN2",
  1612. 'ID': 36,
  1613. 'INDEX': [
  1614. [43],
  1615. [27]
  1616. ]
  1617. }, {
  1618. 'NAME': "B_SLIDE",
  1619. 'ID': 37,
  1620. 'INDEX': [
  1621. [40],
  1622. [24]
  1623. ]
  1624. }, {
  1625. 'NAME': "B_FALL",
  1626. 'ID': 38,
  1627. 'INDEX': [
  1628. [39],
  1629. [23]
  1630. ]
  1631. }, {
  1632. 'NAME': "B_CLIMB0",
  1633. 'ID': 39,
  1634. 'INDEX': [
  1635. [37],
  1636. [21]
  1637. ]
  1638. }, {
  1639. 'NAME': "B_CLIMB1",
  1640. 'ID': 40,
  1641. 'INDEX': [
  1642. [38],
  1643. [22]
  1644. ]
  1645. }, {
  1646. 'NAME': "B_TRANSFORM",
  1647. 'ID': 41,
  1648. 'INDEX': [
  1649. [46],
  1650. [30]
  1651. ]
  1652. }, {
  1653. 'NAME': "F_STAND",
  1654. 'ID': 64,
  1655. 'INDEX': [
  1656. [77],
  1657. [61]
  1658. ]
  1659. }, {
  1660. 'NAME': "F_DOWN",
  1661. 'ID': 65,
  1662. 'INDEX': [
  1663. [76],
  1664. [60]
  1665. ]
  1666. }, {
  1667. 'NAME': "F_RUN0",
  1668. 'ID': 66,
  1669. 'INDEX': [
  1670. [73],
  1671. [57]
  1672. ]
  1673. }, {
  1674. 'NAME': "F_RUN1",
  1675. 'ID': 67,
  1676. 'INDEX': [
  1677. [74],
  1678. [58]
  1679. ]
  1680. }, {
  1681. 'NAME': "F_RUN2",
  1682. 'ID': 68,
  1683. 'INDEX': [
  1684. [75],
  1685. [59]
  1686. ]
  1687. }, {
  1688. 'NAME': "F_SLIDE",
  1689. 'ID': 69,
  1690. 'INDEX': [
  1691. [72],
  1692. [56]
  1693. ]
  1694. }, {
  1695. 'NAME': "F_FALL",
  1696. 'ID': 70,
  1697. 'INDEX': [
  1698. [71],
  1699. [55]
  1700. ]
  1701. }, {
  1702. 'NAME': "F_CLIMB0",
  1703. 'ID': 71,
  1704. 'INDEX': [
  1705. [69],
  1706. [53]
  1707. ]
  1708. }, {
  1709. 'NAME': "F_CLIMB1",
  1710. 'ID': 72,
  1711. 'INDEX': [
  1712. [70],
  1713. [54]
  1714. ]
  1715. }, {
  1716. 'NAME': "F_ATTACK",
  1717. 'ID': 73,
  1718. 'INDEX': [
  1719. [79],
  1720. [63]
  1721. ]
  1722. }, {
  1723. 'NAME': "F_TRANSFORM",
  1724. 'ID': 80,
  1725. 'INDEX': [
  1726. [78],
  1727. [62]
  1728. ]
  1729. }, {
  1730. 'NAME': "G_DEAD",
  1731. 'ID': 96,
  1732. 'INDEX': 0
  1733. }, {
  1734. 'NAME': "G_HIDE",
  1735. 'ID': 112,
  1736. 'INDEX': 14
  1737. }];
  1738. for (var _0x4f3eec = 0; _0x4f3eec < _0x307949.SPRITE_LIST.length; _0x4f3eec++) _0x307949.SPRITE[_0x307949.SPRITE_LIST[_0x4f3eec].NAME] = _0x307949.SPRITE_LIST[_0x4f3eec], _0x307949.SPRITE[_0x307949.SPRITE_LIST[_0x4f3eec]['ID']] = _0x307949.SPRITE_LIST[_0x4f3eec];
  1739. _0x307949.SNAME = {};
  1740. _0x307949.SNAME.STAND = "STAND";
  1741. _0x307949.SNAME.DOWN = "DOWN";
  1742. _0x307949.SNAME.RUN = "RUN";
  1743. _0x307949.SNAME.SLIDE = "SLIDE";
  1744. _0x307949.SNAME.FALL = "FALL";
  1745. _0x307949.SNAME.POLE = "POLE";
  1746. _0x307949.SNAME.CLIMB = "CLIMB";
  1747. _0x307949.SNAME.ATTACK = "ATTACK";
  1748. _0x307949.SNAME.TRANSFORM = "TRANSFORM";
  1749. _0x307949.SNAME.DEAD = "DEAD";
  1750. _0x307949.SNAME.HIDE = "HIDE";
  1751. _0x307949.SNAME.GHOST = "GHOST";
  1752. _0x307949.SNAME.DEADGHOST = "DEADGHOST";
  1753. var _0x1854f6 = _0x4628a4.make(0.9, 0.95),
  1754. _0x5f13bd = _0x4628a4.make(0.9, 1.9);
  1755. _0x307949.STATE = [{
  1756. 'NAME': _0x307949.SNAME.STAND,
  1757. 'ID': 0,
  1758. 'DIM': _0x1854f6,
  1759. 'SPRITE': [_0x307949.SPRITE.S_STAND]
  1760. }, {
  1761. 'NAME': _0x307949.SNAME.DOWN,
  1762. 'ID': 1,
  1763. 'DIM': _0x1854f6,
  1764. 'SPRITE': [_0x307949.SPRITE.S_STAND]
  1765. }, {
  1766. 'NAME': _0x307949.SNAME.RUN,
  1767. 'ID': 2,
  1768. 'DIM': _0x1854f6,
  1769. 'SPRITE': [_0x307949.SPRITE.S_RUN2, _0x307949.SPRITE.S_RUN1, _0x307949.SPRITE.S_RUN0]
  1770. }, {
  1771. 'NAME': _0x307949.SNAME.SLIDE,
  1772. 'ID': 3,
  1773. 'DIM': _0x1854f6,
  1774. 'SPRITE': [_0x307949.SPRITE.S_SLIDE]
  1775. }, {
  1776. 'NAME': _0x307949.SNAME.FALL,
  1777. 'ID': 4,
  1778. 'DIM': _0x1854f6,
  1779. 'SPRITE': [_0x307949.SPRITE.S_FALL]
  1780. }, {
  1781. 'NAME': _0x307949.SNAME.TRANSFORM,
  1782. 'ID': 5,
  1783. 'DIM': _0x1854f6,
  1784. 'SPRITE': [_0x307949.SPRITE.S_STAND]
  1785. }, {
  1786. 'NAME': _0x307949.SNAME.POLE,
  1787. 'ID': 6,
  1788. 'DIM': _0x1854f6,
  1789. 'SPRITE': [_0x307949.SPRITE.S_CLIMB1]
  1790. }, {
  1791. 'NAME': _0x307949.SNAME.CLIMB,
  1792. 'ID': 7,
  1793. 'DIM': _0x1854f6,
  1794. 'SPRITE': [_0x307949.SPRITE.S_CLIMB0, _0x307949.SPRITE.S_CLIMB1]
  1795. }, {
  1796. 'NAME': _0x307949.SNAME.STAND,
  1797. 'ID': 32,
  1798. 'DIM': _0x5f13bd,
  1799. 'SPRITE': [_0x307949.SPRITE.B_STAND]
  1800. }, {
  1801. 'NAME': _0x307949.SNAME.DOWN,
  1802. 'ID': 33,
  1803. 'DIM': _0x1854f6,
  1804. 'SPRITE': [_0x307949.SPRITE.B_DOWN]
  1805. }, {
  1806. 'NAME': _0x307949.SNAME.RUN,
  1807. 'ID': 34,
  1808. 'DIM': _0x5f13bd,
  1809. 'SPRITE': [_0x307949.SPRITE.B_RUN2, _0x307949.SPRITE.B_RUN1, _0x307949.SPRITE.B_RUN0]
  1810. }, {
  1811. 'NAME': _0x307949.SNAME.SLIDE,
  1812. 'ID': 35,
  1813. 'DIM': _0x5f13bd,
  1814. 'SPRITE': [_0x307949.SPRITE.B_SLIDE]
  1815. }, {
  1816. 'NAME': _0x307949.SNAME.FALL,
  1817. 'ID': 36,
  1818. 'DIM': _0x5f13bd,
  1819. 'SPRITE': [_0x307949.SPRITE.B_FALL]
  1820. }, {
  1821. 'NAME': _0x307949.SNAME.TRANSFORM,
  1822. 'ID': 37,
  1823. 'DIM': _0x1854f6,
  1824. 'SPRITE': [_0x307949.SPRITE.B_TRANSFORM]
  1825. }, {
  1826. 'NAME': _0x307949.SNAME.POLE,
  1827. 'ID': 38,
  1828. 'DIM': _0x5f13bd,
  1829. 'SPRITE': [_0x307949.SPRITE.B_CLIMB0]
  1830. }, {
  1831. 'NAME': _0x307949.SNAME.CLIMB,
  1832. 'ID': 39,
  1833. 'DIM': _0x5f13bd,
  1834. 'SPRITE': [_0x307949.SPRITE.B_CLIMB0, _0x307949.SPRITE.B_CLIMB1]
  1835. }, {
  1836. 'NAME': _0x307949.SNAME.STAND,
  1837. 'ID': 64,
  1838. 'DIM': _0x5f13bd,
  1839. 'SPRITE': [_0x307949.SPRITE.F_STAND]
  1840. }, {
  1841. 'NAME': _0x307949.SNAME.DOWN,
  1842. 'ID': 65,
  1843. 'DIM': _0x1854f6,
  1844. 'SPRITE': [_0x307949.SPRITE.F_DOWN]
  1845. }, {
  1846. 'NAME': _0x307949.SNAME.RUN,
  1847. 'ID': 66,
  1848. 'DIM': _0x5f13bd,
  1849. 'SPRITE': [_0x307949.SPRITE.F_RUN2, _0x307949.SPRITE.F_RUN1, _0x307949.SPRITE.F_RUN0]
  1850. }, {
  1851. 'NAME': _0x307949.SNAME.SLIDE,
  1852. 'ID': 67,
  1853. 'DIM': _0x5f13bd,
  1854. 'SPRITE': [_0x307949.SPRITE.F_SLIDE]
  1855. }, {
  1856. 'NAME': _0x307949.SNAME.FALL,
  1857. 'ID': 68,
  1858. 'DIM': _0x5f13bd,
  1859. 'SPRITE': [_0x307949.SPRITE.F_FALL]
  1860. }, {
  1861. 'NAME': _0x307949.SNAME.ATTACK,
  1862. 'ID': 69,
  1863. 'DIM': _0x5f13bd,
  1864. 'SPRITE': [_0x307949.SPRITE.F_ATTACK]
  1865. }, {
  1866. 'NAME': _0x307949.SNAME.TRANSFORM,
  1867. 'ID': 70,
  1868. 'DIM': _0x1854f6,
  1869. 'SPRITE': [_0x307949.SPRITE.F_TRANSFORM]
  1870. }, {
  1871. 'NAME': _0x307949.SNAME.POLE,
  1872. 'ID': 71,
  1873. 'DIM': _0x5f13bd,
  1874. 'SPRITE': [_0x307949.SPRITE.F_CLIMB0]
  1875. }, {
  1876. 'NAME': _0x307949.SNAME.CLIMB,
  1877. 'ID': 72,
  1878. 'DIM': _0x5f13bd,
  1879. 'SPRITE': [_0x307949.SPRITE.F_CLIMB0, _0x307949.SPRITE.F_CLIMB1]
  1880. }, {
  1881. 'NAME': _0x307949.SNAME.DEAD,
  1882. 'DIM': _0x1854f6,
  1883. 'ID': 96,
  1884. 'SPRITE': [_0x307949.SPRITE.G_DEAD]
  1885. }, {
  1886. 'NAME': _0x307949.SNAME.HIDE,
  1887. 'DIM': _0x1854f6,
  1888. 'ID': 112,
  1889. 'SPRITE': [_0x307949.SPRITE.G_HIDE]
  1890. }, {
  1891. 'NAME': _0x307949.SNAME.GHOST,
  1892. 'DIM': _0x1854f6,
  1893. 'ID': 255,
  1894. 'SPRITE': []
  1895. }, {
  1896. 'NAME': _0x307949.SNAME.DEADGHOST,
  1897. 'DIM': _0x1854f6,
  1898. 'ID': 254,
  1899. 'SPRITE': [_0x307949.SPRITE.G_DEAD]
  1900. }];
  1901. _0x307949.prototype.update = function(_0x438e58) {
  1902. this.dead || this.garbage || (this.setState(_0x307949.SNAME.GHOST), this.level = _0x438e58.level, this.zone = _0x438e58.zone, this.pos = _0x438e58.pos, this.sprite = _0x307949.SPRITE[_0x438e58.sprite], this.reverse = _0x438e58.reverse);
  1903. };
  1904. _0x307949.prototype.trigger = function(_0xc69ab0) {
  1905. switch (_0xc69ab0) {
  1906. case 1:
  1907. this.attack();
  1908. break;
  1909. case 2:
  1910. this.star();
  1911. }
  1912. };
  1913. _0x307949.prototype.step = function() {
  1914. 0 < this.starTimer ? this.starTimer-- : this.starMusic && (this.starMusic.stop(), this.starMusic = void 0);
  1915. if (this.isState(_0x307949.SNAME.GHOST)) this.sound();
  1916. else if (!this.isState(_0x307949.SNAME.HIDE))
  1917. if (this.isState(_0x307949.SNAME.POLE))
  1918. if (0 < this.poleTimer && !this.poleWait) this.poleTimer--;
  1919. else {
  1920. this.poleSound || (this.poleSound = !0, this.play("sfx/flagpole.wav", 1, 0x0));
  1921. if (!this.poleWait)
  1922. if (0 >= this.poleTimer && this.autoTarget) this.setState(_0x307949.SNAME.STAND);
  1923. else {
  1924. for (var _0x204729 = _0x4628a4.add(this.pos, _0x4628a4.make(0, -0.15)), _0x4374b4 = _0x4628a4.make(this.pos['x'], this.pos['y'] - 0.15), _0x2571a4 = _0x4628a4.make(this.dim['x'], this.dim['y'] + 0.15), _0x4374b4 = this.game.world.getZone(this.level, this.zone).getTiles(_0x4374b4, _0x2571a4), _0x2571a4 = _0x4628a4.make(1, 0x1), _0x5b4e14 = !1, _0x5443e9 = 0; _0x5443e9 < _0x4374b4.length; _0x5443e9++) {
  1925. var _0x2274e6 = _0x4374b4[_0x5443e9];
  1926. if (_0x4c4bae.intersection(_0x2274e6.pos, _0x2571a4, _0x204729, this.dim) && _0x2274e6.definition.COLLIDE) {
  1927. _0x5b4e14 = !0;
  1928. break;
  1929. }
  1930. }
  1931. _0x5b4e14 ? (this.poleTimer = 15, this.autoTarget = _0x4628a4.add(_0x204729, _0x307949.LEVEL_END_MOVE_OFF), this.poleWait = !0) : this.pos = _0x204729;
  1932. } _0x204729 = this.game.getFlag(this.level, this.zone);
  1933. _0x204729.pos['y'] - 0.15 >= this.pos['y'] ? _0x204729.pos['y'] -= 0.15 : (_0x204729.pos['y'] = this.pos['y'], this.poleWait = !1);
  1934. }
  1935. else if (this.isState(_0x307949.SNAME.RUN) ? this.anim += Math.max(0.5, Math.abs(5 * this.moveSpeed)) : this.anim++, this.sprite = this.state.SPRITE[parseInt(parseInt(this.anim) / _0x307949.ANIMATION_RATE) % this.state.SPRITE.length], this.isState(_0x307949.SNAME.CLIMB)) this.pos['y'] += _0x307949.CLIMB_SPEED, this.pos['y'] >= this.game.world.getZone(this.level, this.zone).dimensions()['y'] && (this.warp(this.vineWarp), this.setState(_0x307949.SNAME.FALL));
  1936. else if (this.isState(_0x307949.SNAME.DEAD) || this.isState(_0x307949.SNAME.DEADGHOST)) 0 < this.deadFreezeTimer ? this.deadFreezeTimer-- : 0 < this.deadTimer ? (this.deadTimer--, this.pos['y'] += this.fallSpeed, this.fallSpeed = Math.max(this.fallSpeed - 0.085, -0.45)) : this.destroy();
  1937. else if (this.isState(_0x307949.SNAME.TRANSFORM))
  1938. if (0 < --this.tfmTimer) switch (_0x204729 = parseInt(this.anim / _0x307949.TRANSFORM_ANIMATION_RATE) % 3, _0x4374b4 = this.power > this.tfmTarget ? this.power : this.tfmTarget, _0x204729) {
  1939. case 0:
  1940. this.sprite = this.getStateByPowerIndex(_0x307949.SNAME.STAND, this.power).SPRITE[0];
  1941. break;
  1942. case 1:
  1943. this.sprite = this.getStateByPowerIndex(_0x307949.SNAME.TRANSFORM, _0x4374b4).SPRITE[0];
  1944. break;
  1945. case 2:
  1946. this.sprite = this.getStateByPowerIndex(_0x307949.SNAME.STAND, this.tfmTarget).SPRITE[0];
  1947. } else this.power = this.tfmTarget, this.tfmTarget = -1, this.setState(_0x307949.SNAME.STAND), this.collisionTest(this.pos, this.dim) && this.setState(_0x307949.SNAME.DOWN), this.damageTimer = _0x307949.DAMAGE_TIME;
  1948. else if (0 < this.pipeDelay) this.pipeDelay--;
  1949. else if (0 < this.pipeTimer && 0 >= this.pipeDelay) {
  1950. 30 <= this.pipeTimer && this.play("sfx/pipe.wav", 1, 0.04);
  1951. switch (this.pipeDir) {
  1952. case 1:
  1953. this.pos['y'] += 0.06;
  1954. break;
  1955. case 2:
  1956. this.pos['y'] -= 0.06;
  1957. break;
  1958. case 3:
  1959. this.pos['x'] -= 0.06;
  1960. break;
  1961. case 4:
  1962. this.pos['x'] += 0.06;
  1963. }
  1964. 1 === --this.pipeTimer && this.pipeWarp && (this.pipeDelay = this.pipeDelayLength);
  1965. if (0 >= this.pipeTimer && this.pipeWarp) {
  1966. this.warp(this.pipeWarp);
  1967. this.weedeat();
  1968. this.pipeWarp = void 0;
  1969. switch (this.pipeExt) {
  1970. case 1:
  1971. this.pos['y'] -= 1.74;
  1972. this.setState(_0x307949.SNAME.STAND);
  1973. this.pos = _0x4628a4.add(this.pos, _0x307949.PIPE_EXT_OFFSET);
  1974. break;
  1975. case 2:
  1976. this.pos['y'] += 1.74;
  1977. this.setState(_0x307949.SNAME.STAND);
  1978. this.pos = _0x4628a4.add(this.pos, _0x307949.PIPE_EXT_OFFSET);
  1979. break;
  1980. case 3:
  1981. this.pos['x'] -= 1.74;
  1982. this.setState(_0x307949.SNAME.RUN);
  1983. break;
  1984. case 4:
  1985. this.pos['x'] += 1.74;
  1986. this.setState(_0x307949.SNAME.RUN);
  1987. break;
  1988. default:
  1989. return;
  1990. }
  1991. this.pipeTimer = 30;
  1992. this.pipeDir = this.pipeExt;
  1993. this.pipeDelay = this.pipeDelayLength;
  1994. }
  1995. } else this.lastPos = this.pos, 0 < this.damageTimer && this.damageTimer--, this.attackCharge < _0x307949.MAX_CHARGE && this.attackCharge++, 0 < this.attackTimer && this.attackTimer--, this.autoTarget && this.autoMove(), this.control(), this.physics(), this.interaction(), this.arrow(), this.sound(), 0 > this.pos['y'] && this.kill();
  1996. };
  1997. _0x307949.prototype.input = function(_0x3265cb, _0x2ea9a1, _0xff23c0) {
  1998. this.btnD = _0x3265cb;
  1999. this.btnA = _0x2ea9a1;
  2000. this.btnB = _0xff23c0;
  2001. };
  2002. _0x307949.prototype.autoMove = function() {
  2003. this.btnD = [0, 0x0];
  2004. this.btnB = this.btnA = !1;
  2005. 0.1 <= Math.abs(this.pos['x'] - this.autoTarget['x']) ? this.btnD = [0 >= this.pos['x'] - this.autoTarget['x'] ? 1 : -1, 0x0] : 0.01 > Math.abs(this.moveSpeed) && (this.btnA = -0.5 > this.pos['y'] - this.autoTarget['y']);
  2006. };
  2007. _0x307949.prototype.control = function() {
  2008. this.grounded && (this.btnBg = this.btnB);
  2009. if (this.isState(_0x307949.SNAME.DOWN) && this.collisionTest(this.pos, this.getStateByPowerIndex(_0x307949.SNAME.STAND, this.power).DIM)) - 1 !== this.btnD[1] && (this.moveSpeed = 0.5 * (this.moveSpeed + _0x307949.STUCK_SLIDE_SPEED)), this.moveSpeed = Math.sign(this.moveSpeed) * Math.max(Math.abs(this.moveSpeed) - _0x307949.MOVE_SPEED_DECEL, 0);
  2010. else {
  2011. 0 !== this.btnD[0] ? (0.01 < Math.abs(this.moveSpeed) && !(0 <= this.btnD[0] ^ 0 > this.moveSpeed) ? (this.moveSpeed += _0x307949.MOVE_SPEED_DECEL * this.btnD[0], this.setState(_0x307949.SNAME.SLIDE)) : (this.moveSpeed = this.btnD[0] * Math.min(Math.abs(this.moveSpeed) + 0.0125, this.btnBg ? 0.315 : 0.215), this.setState(_0x307949.SNAME.RUN)), this.grounded && (this.reverse = 0 <= this.btnD[0])) : (0.01 < Math.abs(this.moveSpeed) ? (this.moveSpeed = Math.sign(this.moveSpeed) * Math.max(Math.abs(this.moveSpeed) - _0x307949.MOVE_SPEED_DECEL, 0), this.setState(_0x307949.SNAME.RUN)) : (this.moveSpeed = 0, this.setState(_0x307949.SNAME.STAND)), -1 === this.btnD[1] && this.setState(_0x307949.SNAME.DOWN));
  2012. for (var _0x348a95 = this.isSpring ? 14 : 0x7, _0x32b03a = this.isSpring ? _0x307949.SPRING_LENGTH_MIN : this.isBounce ? _0x307949.BOUNCE_LENGTH_MIN : _0x307949.JUMP_LENGTH_MIN, _0x1f372a = 0; _0x1f372a < _0x307949.JUMP_SPEED_INC_THRESHOLD.length && Math.abs(this.moveSpeed) >= _0x307949.JUMP_SPEED_INC_THRESHOLD[_0x1f372a]; _0x1f372a++) _0x348a95++;
  2013. this.btnA ? (this.grounded && (this.jumping = 0, this.play(0 < this.power ? "sfx/jump1.wav" : "sfx/jump0.wav", 0.7, 0.04)), this.jumping > _0x348a95 && (this.jumping = -1)) : this.jumping > _0x32b03a && (this.jumping = -1);
  2014. this.grounded || this.setState(_0x307949.SNAME.FALL);
  2015. this.btnB && !this.btnBde && 2 === this.power && !this.isState(_0x307949.SNAME.DOWN) && !this.isState(_0x307949.SNAME.SLIDE) && 1 > this.attackTimer && this.attackCharge >= _0x307949.ATTACK_CHARGE && (this.attack(), this.game.out.push(_0x22483c.encode(1)));
  2016. this.btnBde = this.btnB;
  2017. 0 < this.attackTimer && 2 === this.power && (this.isState(_0x307949.SNAME.STAND) || this.isState(_0x307949.SNAME.RUN)) && this.setState(_0x307949.SNAME.ATTACK);
  2018. }
  2019. };
  2020. _0x307949.prototype.physics = function() {
  2021. -1 !== this.jumping ? (this.fallSpeed = 0.45 - 0.005 * this.jumping, this.jumping++, this.grounded = !1) : (this.isSpring = this.isBounce = !1, this.grounded && (this.fallSpeed = 0), this.fallSpeed = Math.max(this.fallSpeed - 0.085, -0.45));
  2022. for (var _0x3557f3 = _0x4628a4.add(this.pos, _0x4628a4.make(this.moveSpeed, this.fallSpeed)), _0x1eb98f = _0x4628a4.make(this.pos['x'] + Math.min(0, this.moveSpeed), this.pos['y'] + Math.min(0, this.fallSpeed)), _0x4a868a = _0x4628a4.make(this.dim['x'] + Math.max(0, this.moveSpeed), this.dim['y'] + Math.max(0, this.fallSpeed)), _0x1eb98f = this.game.world.getZone(this.level, this.zone).getTiles(_0x1eb98f, _0x4a868a), _0x3ed246 = this.game.getPlatforms(), _0x4a868a = _0x4628a4.make(1, 0x1), _0x323cac = !1, _0x38bdf2 = [], _0x1c8b0f = [], _0x2ab9e0 = [], _0x320504 = [], _0x55b3d7 = [], _0x1544bb, _0x5593b0 = 0; _0x5593b0 < _0x1eb98f.length; _0x5593b0++) {
  2023. var _0x1a0728 = _0x1eb98f[_0x5593b0];
  2024. if (_0x1a0728.definition.COLLIDE)
  2025. if (_0x1a0728.definition.HIDDEN) _0x38bdf2.push(_0x1a0728);
  2026. else if (_0x4c4bae.intersection(_0x1a0728.pos, _0x4a868a, _0x3557f3, this.dim) || _0x4c4bae.intersection(_0x1a0728.pos, _0x4a868a, this.pos, this.dim)) 0.01 < Math.abs(this.moveSpeed) && this.grounded && this.pos['y'] <= _0x1a0728.pos['y'] && _0x2ab9e0.push(_0x1a0728), _0x38bdf2.push(_0x1a0728);
  2027. }
  2028. for (_0x5593b0 = 0; _0x5593b0 < _0x3ed246.length; _0x5593b0++) _0x1a0728 = _0x3ed246[_0x5593b0], _0x4c4bae.intersection(_0x1a0728.pos, _0x1a0728.dim, _0x3557f3, this.dim) && _0x55b3d7.push(_0x1a0728);
  2029. _0x3ed246 = _0x4628a4.make(_0x3557f3['x'], this.pos['y']);
  2030. for (_0x5593b0 = 0; _0x5593b0 < _0x38bdf2.length; _0x5593b0++) _0x1a0728 = _0x38bdf2[_0x5593b0], !_0x1a0728.definition.HIDDEN && _0x4c4bae.intersection(_0x1a0728.pos, _0x4a868a, _0x3ed246, this.dim) && (_0x3ed246['x'] = _0x3ed246['x'] + 0.5 * this.dim['x'] < _0x1a0728.pos['x'] + 0.5 * _0x4a868a['x'] ? _0x1a0728.pos['x'] - this.dim['x'] : _0x1a0728.pos['x'] + _0x4a868a['x'], this.moveSpeed *= 0.33);
  2031. _0x3557f3['x'] = _0x3ed246['x'];
  2032. for (_0x5593b0 = 0; _0x5593b0 < _0x38bdf2.length; _0x5593b0++) _0x1a0728 = _0x38bdf2[_0x5593b0], _0x4c4bae.intersection(_0x1a0728.pos, _0x4a868a, _0x3557f3, this.dim) && (this.fallSpeed > _0x307949.BLOCK_BUMP_THRESHOLD && _0x320504.push(_0x1a0728), 0 > this.fallSpeed && this.pos['y'] >= _0x1a0728.pos['y'] && _0x1c8b0f.push(_0x1a0728));
  2033. for (_0x5593b0 = 0; _0x5593b0 < _0x38bdf2.length; _0x5593b0++) _0x1a0728 = _0x38bdf2[_0x5593b0], _0x4c4bae.intersection(_0x1a0728.pos, _0x4a868a, _0x3557f3, this.dim) && (this.pos['y'] >= _0x3557f3['y'] ? _0x1a0728.definition.HIDDEN || (_0x3557f3['y'] = _0x1a0728.pos['y'] + _0x4a868a['y'], this.fallSpeed = 0, _0x323cac = !0) : (_0x3557f3['y'] = _0x1a0728.pos['y'] - this.dim['y'], this.fallSpeed = 0));
  2034. for (_0x5593b0 = 0; _0x5593b0 < _0x55b3d7.length; _0x5593b0++)
  2035. if (_0x1a0728 = _0x55b3d7[_0x5593b0], this.pos['y'] >= _0x3557f3['y'] && _0x1a0728.pos['y'] + _0x1a0728.dim['y'] - this.pos['y'] < _0x307949.PLATFORM_SNAP_DIST) {
  2036. _0x3557f3['y'] = _0x1a0728.pos['y'] + _0x1a0728.dim['y'];
  2037. _0x323cac = !0;
  2038. _0x1544bb = _0x1a0728;
  2039. break;
  2040. } this.grounded = _0x323cac;
  2041. this.pos = _0x3557f3;
  2042. _0x1544bb && _0x1544bb.riding(this);
  2043. for (_0x5593b0 = 0; _0x5593b0 < _0x1eb98f.length; _0x5593b0++) _0x1a0728 = _0x1eb98f[_0x5593b0], _0x4c4bae.intersection(_0x1a0728.pos, _0x4a868a, _0x3557f3, this.dim) && _0x1a0728.definition.TRIGGER(this.game, this.pid, _0x1a0728, this.level, this.zone, _0x1a0728.pos['x'], _0x1a0728.pos['y'], _0x3b5639.TRIGGER.TYPE.TOUCH);
  2044. if (this.isState(_0x307949.SNAME.DOWN) && 0.05 > this.moveSpeed)
  2045. for (_0x5593b0 = 0; _0x5593b0 < _0x1c8b0f.length; _0x5593b0++) _0x1a0728 = _0x1c8b0f[_0x5593b0], _0x1a0728.definition.TRIGGER(this.game, this.pid, _0x1a0728, this.level, this.zone, _0x1a0728.pos['x'], _0x1a0728.pos['y'], _0x3b5639.TRIGGER.TYPE.DOWN);
  2046. if (this.isState(_0x307949.SNAME.RUN))
  2047. for (_0x5593b0 = 0; _0x5593b0 < _0x2ab9e0.length; _0x5593b0++) _0x1a0728 = _0x2ab9e0[_0x5593b0], _0x1a0728.definition.TRIGGER(this.game, this.pid, _0x1a0728, this.level, this.zone, _0x1a0728.pos['x'], _0x1a0728.pos['y'], _0x3b5639.TRIGGER.TYPE.PUSH);
  2048. for (_0x5593b0 = 0; _0x5593b0 < _0x320504.length; _0x5593b0++) _0x1a0728 = _0x320504[_0x5593b0], _0x1a0728.definition.TRIGGER(this.game, this.pid, _0x1a0728, this.level, this.zone, _0x1a0728.pos['x'], _0x1a0728.pos['y'], 0 < this.power ? _0x3b5639.TRIGGER.TYPE.BIG_BUMP : _0x3b5639.TRIGGER.TYPE.SMALL_BUMP), this.jumping = -1, this.fallSpeed = -_0x307949.BLOCK_BUMP_THRESHOLD;
  2049. };
  2050. _0x307949.prototype.collisionTest = function(_0x2b94c4, _0x365a52) {
  2051. for (var _0x348bab = _0x4628a4.make(1, 0x1), _0x5bcbfb = this.game.world.getZone(this.level, this.zone).getTiles(_0x2b94c4, _0x365a52), _0x647699 = 0; _0x647699 < _0x5bcbfb.length; _0x647699++) {
  2052. var _0x227263 = _0x5bcbfb[_0x647699];
  2053. if (_0x227263.definition.COLLIDE && _0x4c4bae.intersection(_0x227263.pos, _0x348bab, _0x2b94c4, _0x365a52)) return !0;
  2054. }
  2055. return !1;
  2056. };
  2057. _0x307949.prototype.interaction = function() {
  2058. for (var _0x22f6c7 = 0; _0x22f6c7 < this.game.objects.length; _0x22f6c7++) {
  2059. var _0x477778 = this.game.objects[_0x22f6c7];
  2060. _0x477778 !== this && !this.dead && _0x477778.level === this.level && _0x477778.zone === this.zone && _0x477778.isTangible() && _0x4c4bae.intersection(_0x477778.pos, _0x477778.dim, this.pos, this.dim) && (0 < this.starTimer && _0x477778.bonk && (_0x477778.bonk(), this.game.out.push(_0x217d86.encode(_0x477778.level, _0x477778.zone, _0x477778.oid, 1))), _0x477778 instanceof _0x307949 && 0 < _0x477778.starTimer && !this.autoTarget && (this.damage(_0x477778), this.dead && this.game.out.push(_0x137dca.encode(_0x477778.pid))), this.lastPos['y'] > _0x477778.pos['y'] + 0.66 * _0x477778.dim['y'] - Math.max(0, _0x477778.fallSpeed) ? _0x477778.playerStomp && _0x477778.playerStomp(this) : this.lastPos['y'] < _0x477778.pos['y'] ? _0x477778.playerBump && _0x477778.playerBump(this) : _0x477778.playerCollide && _0x477778.playerCollide(this));
  2061. }
  2062. };
  2063. _0x307949.prototype.arrow = function() {
  2064. for (var _0x8e07c9 = 0, _0x515633 = 0; _0x515633 < this.game.objects.length; _0x515633++) {
  2065. var _0x4e02ea = this.game.objects[_0x515633];
  2066. _0x4e02ea !== this && _0x4e02ea instanceof _0x307949 && _0x4e02ea.level === this.level && _0x4e02ea.zone === this.zone && (_0x8e07c9 += 1 - Math.min(_0x307949.ARROW_RAD_OUT, Math.max(0, _0x4628a4.distance(this.pos, _0x4e02ea.pos) - _0x307949.ARROW_RAD_IN)) / _0x307949.ARROW_RAD_OUT);
  2067. }
  2068. this.arrowFade = Math.min(_0x307949.ARROW_THRESHOLD_MAX, Math.max(0, _0x8e07c9 - _0x307949.ARROW_THRESHOLD_MIN)) / _0x307949.ARROW_THRESHOLD_MAX;
  2069. };
  2070. _0x307949.prototype.sound = _0x2b132.prototype.sound;
  2071. _0x307949.prototype.attack = function() {
  2072. this.attackTimer = _0x307949.ATTACK_DELAY;
  2073. this.attackCharge -= _0x307949.ATTACK_CHARGE;
  2074. var _0x56c306 = this.reverse ? _0x4628a4.add(this.pos, _0x307949.PROJ_OFFSET) : _0x4628a4.add(this.pos, _0x4628a4.multiply(_0x307949.PROJ_OFFSET, _0x4628a4.make(-1, 0x1)));
  2075. this.game.createObject(_0xae11c9['ID'], this.level, this.zone, _0x56c306, [this.reverse, this.pid]);
  2076. this.play("sfx/fireball.wav", 1, 0.04);
  2077. };
  2078. _0x307949.prototype.bounce = function() {
  2079. this.jumping = 0;
  2080. this.isBounce = !0;
  2081. };
  2082. _0x307949.prototype.damage = function(_0x31ed98) {
  2083. 0 < this.damageTimer || 0 < this.starTimer || this.isState(_0x307949.SNAME.TRANSFORM) || this.isState(_0x307949.SNAME.CLIMB) || this.isState(_0x307949.SNAME.POLE) || this.pipeWarp || 0 < this.pipeTimer || 0 < this.pipeDelay || this.autoTarget || (0 < this.power ? (this.tfm(0), this.damageTimer = _0x307949.DAMAGE_TIME) : this.kill());
  2084. };
  2085. _0x307949.prototype.invuln = function() {
  2086. this.damageTimer = _0x307949.DAMAGE_TIME;
  2087. };
  2088. _0x307949.prototype.powerup = function(_0xa352e0) {
  2089. _0xa352e0 instanceof _0x1461d8 && 1 > this.power ? (this.tfm(1), this.rate = 115) : _0xa352e0 instanceof _0x5b7df1 && 2 > this.power ? (this.tfm(2), this.rate = 113) : _0xa352e0 instanceof _0x34438c ? (this.star(), this.game.out.push(_0x22483c.encode(2)), this.rate = 67) : _0xa352e0 instanceof _0x4786c4 ? this.game.lifeage() : _0xa352e0 instanceof _0x43220d ? this.game.coinage() : _0xa352e0 instanceof _0x95234 ? this.game.out.push(_0x219ba8.encode()) : _0xa352e0 instanceof _0x2aa8a6 && this.damage(_0xa352e0);
  2090. };
  2091. _0x307949.prototype.axe = function(_0x47b17d) {
  2092. (_0x47b17d = this.game.getText(this.level, this.zone, _0x47b17d.toString())) || (_0x47b17d = this.game.getText(this.level, this.zone, "too bad"));
  2093. _0x47b17d && (this.autoTarget = _0x4628a4.add(_0x47b17d.pos, _0x4628a4.make(0, -1.6)));
  2094. };
  2095. _0x307949.prototype.star = function() {
  2096. this.starMusic && (this.starMusic.stop(), this.starMusic = void 0);
  2097. this.starTimer = _0x307949.STAR_LENGTH;
  2098. (this.starMusic = this.play("music/star.mp3", 1, 0.04)) && this.starMusic.loop(!0);
  2099. };
  2100. _0x307949.prototype.tfm = function(_0x39d852) {
  2101. this.power < _0x39d852 ? this.play("sfx/powerup.wav", 1, 0.04) : this.play("sfx/pipe.wav", 1, 0.04);
  2102. this.tfmTarget = _0x39d852;
  2103. this.tfmTimer = _0x307949.TRANSFORM_TIME;
  2104. this.setState(_0x307949.SNAME.TRANSFORM);
  2105. };
  2106. _0x307949.prototype.warp = function(_0x881c58) {
  2107. if (_0x881c58 = this.game.world.getLevel(this.level).getWarp(_0x881c58)) this.level = _0x881c58.level, this.zone = _0x881c58.zone, this.pos = _0x881c58.pos, this.autoTarget = void 0, this.grounded = !1;
  2108. };
  2109. _0x307949.prototype.pipe = function(_0x28385c, _0x3a307a, _0x545f04) {
  2110. 1 !== _0x28385c && 2 !== _0x28385c || this.setState(_0x307949.SNAME.STAND);
  2111. var _0x25667b = this.game.world.getLevel(this.level).getWarp(_0x3a307a);
  2112. this.pipeWarp = _0x3a307a;
  2113. this.pipeTimer = 30;
  2114. this.pipeDir = _0x28385c;
  2115. this.pipeExt = _0x25667b.data;
  2116. this.pipeDelayLength = _0x545f04;
  2117. };
  2118. _0x307949.prototype.weedeat = function() {
  2119. for (var _0x18acbf = 0; _0x18acbf < this.game.objects.length; _0x18acbf++) {
  2120. var _0x1e852c = this.game.objects[_0x18acbf];
  2121. _0x1e852c instanceof _0x70c5e6 && !_0x1e852c.dead && _0x4628a4.distance(this.pos, _0x1e852c.pos) < _0x307949.WEED_EAT_RADIUS && _0x1e852c.destroy();
  2122. }
  2123. };
  2124. _0x307949.prototype.pole = function(_0x4b8c41) {
  2125. this.autoTarget || (this.setState(_0x307949.SNAME.POLE), this.fallSpeed = this.moveSpeed = 0, this.pos['x'] = _0x4b8c41['x'], this.poleTimer = 15, this.poleSound = !1);
  2126. };
  2127. _0x307949.prototype.vine = function(_0x5cacf9, _0x960433) {
  2128. this.setState(_0x307949.SNAME.CLIMB);
  2129. this.fallSpeed = this.moveSpeed = 0;
  2130. this.pos['x'] = _0x5cacf9['x'];
  2131. this.vineWarp = _0x960433;
  2132. };
  2133. _0x307949.prototype.hide = function() {
  2134. this.setState(_0x307949.SNAME.HIDE);
  2135. };
  2136. _0x307949.prototype.show = function() {
  2137. this.setState(_0x307949.SNAME.STAND);
  2138. };
  2139. _0x307949.prototype.kill = function() {
  2140. this.starMusic && (this.starMusic.stop(), this.starMusic = void 0, this.starTimer = 0);
  2141. this.isState(_0x307949.SNAME.GHOST) ? this.setState(_0x307949.SNAME.DEADGHOST) : this.setState(_0x307949.SNAME.DEAD);
  2142. this.dead = !0;
  2143. this.deadTimer = _0x307949.DEAD_TIME;
  2144. this.deadFreezeTimer = _0x307949.DEAD_FREEZE_TIME;
  2145. this.fallSpeed = _0x307949.DEAD_UP_FORCE;
  2146. this.game.getPlayer() === this && this.game.out.push(_0x2befb4.encode());
  2147. };
  2148. _0x307949.prototype.destroy = function() {
  2149. this.starMusic && (this.starMusic.stop(), this.starMusic = void 0, this.starTimer = 0);
  2150. _0x2b132.prototype.destroy.call(this);
  2151. };
  2152. _0x307949.prototype.isTangible = function() {
  2153. return _0x2b132.prototype.isTangible.call(this) && !this.isState(_0x307949.SNAME.HIDE) && 0 >= this.pipeDelay;
  2154. };
  2155. _0x307949.prototype.setState = function(_0x4a1a86) {
  2156. _0x4a1a86 = this.getStateByPowerIndex(_0x4a1a86, this.power);
  2157. _0x4a1a86 !== this.state && (this.state = _0x4a1a86, 0 < _0x4a1a86.SPRITE.length && (this.sprite = _0x4a1a86.SPRITE[0]), this.dim = _0x4a1a86.DIM, this.anim = 0);
  2158. };
  2159. _0x307949.prototype.getStateByPowerIndex = function(_0x5e208d, _0x21eb9d) {
  2160. for (var _0x42ee49 = 0; _0x42ee49 < _0x307949.STATE.length; _0x42ee49++) {
  2161. var _0x312ab9 = _0x307949.STATE[_0x42ee49];
  2162. if (_0x312ab9.NAME === _0x5e208d && (_0x312ab9['ID'] >= _0x307949.GENERIC_INDEX || _0x312ab9['ID'] >= _0x307949.POWER_INDEX_SIZE * _0x21eb9d && _0x312ab9['ID'] < _0x307949.POWER_INDEX_SIZE * (_0x21eb9d + 1))) return _0x312ab9;
  2163. }
  2164. };
  2165. _0x307949.prototype.isState = function(_0xbe936c) {
  2166. return _0xbe936c === this.state.NAME;
  2167. };
  2168. _0x307949.prototype.draw = function(_0x10466d) {
  2169. if (!(this.isState(_0x307949.SNAME.HIDE) || 0 < this.pipeDelay || 0 < this.damageTimer && 1 < this.damageTimer % 3)) {
  2170. var _0x4d6ed1;
  2171. _0x4d6ed1 = 0 < this.starTimer ? 2 : this.isState(_0x307949.SNAME.GHOST) || this.isState(_0x307949.SNAME.DEADGHOST) ? 1 : 0x0;
  2172. if (this.sprite.INDEX instanceof Array)
  2173. for (var _0x463b21 = this.sprite.INDEX, _0x4e64a5 = 0; _0x4e64a5 < _0x463b21.length; _0x4e64a5++)
  2174. for (var _0x876c5d = 0; _0x876c5d < _0x463b21[_0x4e64a5].length; _0x876c5d++) 2 === _0x4d6ed1 && _0x10466d.push({
  2175. 'pos': _0x4628a4.add(_0x4628a4.add(this.pos, _0x307949.DIM_OFFSET), _0x4628a4.make(_0x876c5d, _0x4e64a5)),
  2176. 'reverse': this.reverse,
  2177. 'index': _0x463b21[_0x4e64a5][_0x876c5d],
  2178. 'mode': 0
  2179. }), _0x10466d.push({
  2180. 'pos': _0x4628a4.add(_0x4628a4.add(this.pos, _0x307949.DIM_OFFSET), _0x4628a4.make(_0x876c5d, _0x4e64a5)),
  2181. 'reverse': this.reverse,
  2182. 'index': _0x463b21[_0x4e64a5][_0x876c5d],
  2183. 'mode': _0x4d6ed1
  2184. });
  2185. else 2 === _0x4d6ed1 && _0x10466d.push({
  2186. 'pos': _0x4628a4.add(this.pos, _0x307949.DIM_OFFSET),
  2187. 'reverse': this.reverse,
  2188. 'index': this.sprite.INDEX,
  2189. 'mode': 0
  2190. }), _0x10466d.push({
  2191. 'pos': _0x4628a4.add(this.pos, _0x307949.DIM_OFFSET),
  2192. 'reverse': this.reverse,
  2193. 'index': this.sprite.INDEX,
  2194. 'mode': _0x4d6ed1
  2195. });
  2196. 0 < this.arrowFade && (_0x4d6ed1 = 160 + parseInt(32 * this.arrowFade), _0x10466d.push({
  2197. 'pos': _0x4628a4.add(_0x4628a4.add(this.pos, _0x4628a4.make(0, this.dim['y'])), _0x307949.ARROW_OFFSET),
  2198. 'reverse': !1,
  2199. 'index': _0x307949.ARROW_SPRITE,
  2200. 'mode': _0x4d6ed1
  2201. }));
  2202. }
  2203. };
  2204. _0x307949.prototype.write = function(_0x20d883) {
  2205. 0 < this.arrowFade ? _0x20d883.push({
  2206. 'pos': _0x4628a4.add(_0x4628a4.add(this.pos, _0x4628a4.make(0, this.dim['y'])), _0x307949.TEXT_OFFSET),
  2207. 'size': _0x307949.TEXT_SIZE,
  2208. 'color': "rgba(255,255,255," + this.arrowFade + ')',
  2209. 'text': _0x307949.ARROW_TEXT
  2210. }) : this.name && _0x20d883.push({
  2211. 'pos': _0x4628a4.add(_0x4628a4.add(this.pos, _0x4628a4.make(0, this.sprite.INDEX instanceof Array ? 2 : 0x1)), _0x307949.TEAM_OFFSET),
  2212. 'size': _0x307949.TEAM_SIZE,
  2213. 'color': _0x307949.TEAM_COLOR,
  2214. 'text': this.name
  2215. });
  2216. };
  2217. _0x307949.prototype.play = _0x2b132.prototype.play;
  2218. _0x2b132.REGISTER_OBJECT(_0x307949);
  2219. "use strict";
  2220. function _0x283378(_0x4f9a2f, _0x3d8684, _0x2ebb91, _0x1aced7, _0x32a76c, _0x2c5d13) {
  2221. _0x2b132.call(this, _0x4f9a2f, _0x3d8684, _0x2ebb91, _0x1aced7);
  2222. this.oid = _0x32a76c;
  2223. this.variant = isNaN(parseInt(_0x2c5d13)) ? 0 : parseInt(_0x2c5d13);
  2224. this.setState(_0x283378.STATE.RUN);
  2225. this.bonkTimer = this.deadTimer = this.anim = 0;
  2226. this.dim = _0x4628a4.make(1, 0x1);
  2227. this.fallSpeed = this.moveSpeed = 0;
  2228. this.disabled = this.grounded = !1;
  2229. this.disabledTimer = 0;
  2230. this.proxHit = !1;
  2231. this.dir = !0;
  2232. this.disable();
  2233. }
  2234. _0x283378.ASYNC = !1;
  2235. _0x283378['ID'] = 17;
  2236. _0x283378.NAME = "GOOMBA";
  2237. _0x283378.ANIMATION_RATE = 3;
  2238. _0x283378.VARIANT_OFFSET = 80;
  2239. _0x283378.ENABLE_FADE_TIME = 15;
  2240. _0x283378.ENABLE_DIST = 26;
  2241. _0x283378.DEAD_TIME = 60;
  2242. _0x283378.BONK_TIME = 90;
  2243. _0x283378.BONK_IMP = _0x4628a4.make(0.25, 0.4);
  2244. _0x283378.BONK_DECEL = 0.925;
  2245. _0x283378.BONK_FALL_SPEED = 0.5;
  2246. _0x283378.MOVE_SPEED_MAX = 0.075;
  2247. _0x283378.FALL_SPEED_MAX = 0.35;
  2248. _0x283378.FALL_SPEED_ACCEL = 0.085;
  2249. _0x283378.SPRITE = {};
  2250. _0x283378.SPRITE_LIST = [{
  2251. 'NAME': "RUN0",
  2252. 'ID': 0,
  2253. 'INDEX': 15
  2254. }, {
  2255. 'NAME': "RUN1",
  2256. 'ID': 1,
  2257. 'INDEX': 31
  2258. }, {
  2259. 'NAME': "DEAD",
  2260. 'ID': 2,
  2261. 'INDEX': 47
  2262. }];
  2263. for (_0x4f3eec = 0; _0x4f3eec < _0x283378.SPRITE_LIST.length; _0x4f3eec++) _0x283378.SPRITE[_0x283378.SPRITE_LIST[_0x4f3eec].NAME] = _0x283378.SPRITE_LIST[_0x4f3eec], _0x283378.SPRITE[_0x283378.SPRITE_LIST[_0x4f3eec]['ID']] = _0x283378.SPRITE_LIST[_0x4f3eec];
  2264. _0x283378.STATE = {};
  2265. _0x283378.STATE_LIST = [{
  2266. 'NAME': "RUN",
  2267. 'ID': 0,
  2268. 'SPRITE': [_0x283378.SPRITE.RUN0, _0x283378.SPRITE.RUN1]
  2269. }, {
  2270. 'NAME': "DEAD",
  2271. 'ID': 80,
  2272. 'SPRITE': [_0x283378.SPRITE.DEAD]
  2273. }, {
  2274. 'NAME': "BONK",
  2275. 'ID': 81,
  2276. 'SPRITE': []
  2277. }];
  2278. for (_0x4f3eec = 0; _0x4f3eec < _0x283378.STATE_LIST.length; _0x4f3eec++) _0x283378.STATE[_0x283378.STATE_LIST[_0x4f3eec].NAME] = _0x283378.STATE_LIST[_0x4f3eec], _0x283378.STATE[_0x283378.STATE_LIST[_0x4f3eec]['ID']] = _0x283378.STATE_LIST[_0x4f3eec];
  2279. _0x283378.prototype.update = function(_0x253d8f) {
  2280. switch (_0x253d8f) {
  2281. case 0:
  2282. this.kill();
  2283. break;
  2284. case 1:
  2285. this.bonk();
  2286. break;
  2287. case 160:
  2288. this.enable();
  2289. }
  2290. };
  2291. _0x283378.prototype.step = function() {
  2292. this.disabled ? this.proximity() : (0 < this.disabledTimer && this.disabledTimer--, this.state === _0x283378.STATE.BONK ? this.bonkTimer++ > _0x283378.BONK_TIME || 0 > this.pos['y'] + this.dim['y'] ? this.destroy() : (this.pos = _0x4628a4.add(this.pos, _0x4628a4.make(this.moveSpeed, this.fallSpeed)), this.moveSpeed *= _0x283378.BONK_DECEL, this.fallSpeed = Math.max(this.fallSpeed - _0x283378.FALL_SPEED_ACCEL, -_0x283378.BONK_FALL_SPEED)) : (this.anim++, this.sprite = this.state.SPRITE[parseInt(this.anim / _0x283378.ANIMATION_RATE) % this.state.SPRITE.length], this.state === _0x283378.STATE.DEAD ? this.deadTimer++ < _0x283378.DEAD_TIME || this.destroy() : (this.control(), this.physics(), this.sound(), 0 > this.pos['y'] && this.destroy())));
  2293. };
  2294. _0x283378.prototype.control = function() {
  2295. this.moveSpeed = this.dir ? -_0x283378.MOVE_SPEED_MAX : _0x283378.MOVE_SPEED_MAX;
  2296. };
  2297. _0x283378.prototype.physics = function() {
  2298. this.grounded && (this.fallSpeed = 0);
  2299. this.fallSpeed = Math.max(this.fallSpeed - _0x283378.FALL_SPEED_ACCEL, -_0x283378.FALL_SPEED_MAX);
  2300. var _0x40186e = _0x4628a4.add(this.pos, _0x4628a4.make(this.moveSpeed, 0)),
  2301. _0x23f853 = _0x4628a4.add(this.pos, _0x4628a4.make(this.moveSpeed, this.fallSpeed)),
  2302. _0x49dfe2 = _0x4628a4.make(0 <= this.moveSpeed ? this.pos['x'] : this.pos['x'] + this.moveSpeed, 0 >= this.fallSpeed ? this.pos['y'] : this.pos['y'] + this.fallSpeed),
  2303. _0x5b5fe7 = _0x4628a4.make(this.dim['y'] + Math.abs(this.moveSpeed), this.dim['y'] + Math.abs(this.fallSpeed)),
  2304. _0x49dfe2 = this.game.world.getZone(this.level, this.zone).getTiles(_0x49dfe2, _0x5b5fe7),
  2305. _0x5b5fe7 = _0x4628a4.make(1, 0x1),
  2306. _0x1d4e2e = !1;
  2307. this.grounded = !1;
  2308. for (var _0x270e91 = 0; _0x270e91 < _0x49dfe2.length; _0x270e91++) {
  2309. var _0x2fdd07 = _0x49dfe2[_0x270e91];
  2310. _0x2fdd07.definition.COLLIDE && _0x4c4bae.intersection(_0x2fdd07.pos, _0x5b5fe7, _0x40186e, this.dim) && (this.pos['x'] <= _0x40186e['x'] && _0x40186e['x'] + this.dim['x'] > _0x2fdd07.pos['x'] ? (_0x40186e['x'] = _0x2fdd07.pos['x'] - this.dim['x'], _0x23f853['x'] = _0x40186e['x'], this.moveSpeed = 0, _0x1d4e2e = !0) : this.pos['x'] >= _0x40186e['x'] && _0x40186e['x'] < _0x2fdd07.pos['x'] + _0x5b5fe7['x'] && (_0x40186e['x'] = _0x2fdd07.pos['x'] + _0x5b5fe7['x'], _0x23f853['x'] = _0x40186e['x'], this.moveSpeed = 0, _0x1d4e2e = !0));
  2311. }
  2312. for (_0x270e91 = 0; _0x270e91 < _0x49dfe2.length; _0x270e91++) _0x2fdd07 = _0x49dfe2[_0x270e91], _0x2fdd07.definition.COLLIDE && _0x4c4bae.intersection(_0x2fdd07.pos, _0x5b5fe7, _0x23f853, this.dim) && (this.pos['y'] >= _0x23f853['y'] && _0x23f853['y'] < _0x2fdd07.pos['y'] + _0x5b5fe7['y'] ? (_0x23f853['y'] = _0x2fdd07.pos['y'] + _0x5b5fe7['y'], this.fallSpeed = 0, this.grounded = !0) : this.pos['y'] <= _0x23f853['y'] && _0x23f853['y'] + this.dim['y'] > _0x2fdd07.pos['y'] && (_0x23f853['y'] = _0x2fdd07.pos['y'] - this.dim['y'], this.fallSpeed = 0));
  2313. this.pos = _0x4628a4.make(_0x40186e['x'], _0x23f853['y']);
  2314. _0x1d4e2e && (this.dir = !this.dir);
  2315. };
  2316. _0x283378.prototype.sound = _0x2b132.prototype.sound;
  2317. _0x283378.prototype.proximity = function() {
  2318. var _0x47fc6c = this.game.getPlayer();
  2319. _0x47fc6c && !_0x47fc6c.dead && _0x47fc6c.level === this.level && _0x47fc6c.zone === this.zone && !this.proxHit && _0x4628a4.distance(_0x47fc6c.pos, this.pos) < _0x283378.ENABLE_DIST && (this.game.out.push(_0x217d86.encode(this.level, this.zone, this.oid, 160)), this.proxHit = !0);
  2320. };
  2321. _0x283378.prototype.enable = function() {
  2322. this.disabled = !1;
  2323. this.disabledTimer = _0x283378.ENABLE_FADE_TIME;
  2324. };
  2325. _0x283378.prototype.disable = function() {
  2326. this.disabled = !0;
  2327. };
  2328. _0x283378.prototype.damage = function(_0x2a150a) {
  2329. this.dead || (this.bonk(), this.game.out.push(_0x217d86.encode(this.level, this.zone, this.oid, 1)));
  2330. };
  2331. _0x283378.prototype.bonk = function() {
  2332. this.dead || (this.setState(_0x283378.STATE.BONK), this.moveSpeed = _0x283378.BONK_IMP['x'], this.fallSpeed = _0x283378.BONK_IMP['y'], this.dead = !0, this.play("sfx/kick.wav", 1, 0.04));
  2333. };
  2334. _0x283378.prototype.playerCollide = function(_0x4ebe42) {
  2335. this.dead || this.garbage || _0x4ebe42.damage(this);
  2336. };
  2337. _0x283378.prototype.playerStomp = function(_0x555954) {
  2338. this.dead || this.garbage || (this.kill(), _0x555954.bounce(), this.game.out.push(_0x217d86.encode(this.level, this.zone, this.oid, 0)));
  2339. };
  2340. _0x283378.prototype.playerBump = function(_0x4e1cbf) {
  2341. this.dead || this.garbage || _0x4e1cbf.damage(this);
  2342. };
  2343. _0x283378.prototype.kill = function() {
  2344. this.dead = !0;
  2345. this.setState(_0x283378.STATE.DEAD);
  2346. this.play("sfx/stomp.wav", 1, 0.04);
  2347. };
  2348. _0x283378.prototype.destroy = _0x2b132.prototype.destroy;
  2349. _0x283378.prototype.isTangible = _0x2b132.prototype.isTangible;
  2350. _0x283378.prototype.setState = function(_0x3a8691) {
  2351. _0x3a8691 !== this.state && (this.state = _0x3a8691, 0 < _0x3a8691.SPRITE.length && (this.sprite = _0x3a8691.SPRITE[0]), this.anim = 0);
  2352. };
  2353. _0x283378.prototype.draw = function(_0x3ed529) {
  2354. if (!this.disabled) {
  2355. var _0x36cdfb;
  2356. _0x36cdfb = this.state === _0x283378.STATE.BONK ? 3 : 0x0 < this.disabledTimer ? 160 + parseInt(32 * (1 - this.disabledTimer / _0x283378.ENABLE_FADE_TIME)) : 0;
  2357. if (this.sprite.INDEX instanceof Array)
  2358. for (var _0x50473d = this.sprite.INDEX, _0x24d1cc = 0; _0x24d1cc < _0x50473d.length; _0x24d1cc++)
  2359. for (var _0xe71d1c = 0; _0xe71d1c < _0x50473d[_0x24d1cc].length; _0xe71d1c++) {
  2360. var _0x2d7f7b = _0x50473d[_0x36cdfb ? _0x50473d.length - 1 - _0x24d1cc : _0x24d1cc][_0xe71d1c];
  2361. switch (this.variant) {
  2362. case 1:
  2363. _0x2d7f7b += _0x283378.VARIANT_OFFSET;
  2364. }
  2365. _0x3ed529.push({
  2366. 'pos': _0x4628a4.add(this.pos, _0x4628a4.make(_0xe71d1c, _0x24d1cc)),
  2367. 'reverse': !this.dir,
  2368. 'index': _0x2d7f7b,
  2369. 'mode': _0x36cdfb
  2370. });
  2371. } else {
  2372. _0x2d7f7b = this.sprite.INDEX;
  2373. switch (this.variant) {
  2374. case 1:
  2375. _0x2d7f7b += _0x283378.VARIANT_OFFSET;
  2376. }
  2377. _0x3ed529.push({
  2378. 'pos': this.pos,
  2379. 'reverse': !this.dir,
  2380. 'index': _0x2d7f7b,
  2381. 'mode': _0x36cdfb
  2382. });
  2383. }
  2384. }
  2385. };
  2386. _0x283378.prototype.play = _0x2b132.prototype.play;
  2387. _0x2b132.REGISTER_OBJECT(_0x283378);
  2388. "use strict";
  2389. function _0x2b64bd(_0x3b9475, _0x412263, _0x32b9be, _0x5b6119, _0xe61fc0, _0x2646e7, _0x5a0bbf) {
  2390. _0x2b132.call(this, _0x3b9475, _0x412263, _0x32b9be, _0x5b6119);
  2391. this.oid = _0xe61fc0;
  2392. this.variant = isNaN(parseInt(_0x5a0bbf)) ? 0 : parseInt(_0x5a0bbf);
  2393. this.setState(parseInt(_0x2646e7) ? _0x2b64bd.STATE.FLY : _0x2b64bd.STATE.RUN);
  2394. this.bonkTimer = this.anim = 0;
  2395. this.dim = _0x4628a4.make(1, 0x1);
  2396. this.fallSpeed = this.moveSpeed = 0;
  2397. this.grounded = !1;
  2398. this.jump = -1;
  2399. this.disabled = !1;
  2400. this.disabledTimer = 0;
  2401. this.proxHit = !1;
  2402. this.immuneTimer = 0;
  2403. this.dir = !0;
  2404. this.disable();
  2405. }
  2406. _0x2b64bd.ASYNC = !1;
  2407. _0x2b64bd['ID'] = 18;
  2408. _0x2b64bd.NAME = "KOOPA";
  2409. _0x2b64bd.ANIMATION_RATE = 3;
  2410. _0x2b64bd.VARIANT_OFFSET = 32;
  2411. _0x2b64bd.ENABLE_FADE_TIME = 15;
  2412. _0x2b64bd.ENABLE_DIST = 26;
  2413. _0x2b64bd.BONK_TIME = 90;
  2414. _0x2b64bd.BONK_IMP = _0x4628a4.make(0.25, 0.4);
  2415. _0x2b64bd.BONK_DECEL = 0.925;
  2416. _0x2b64bd.BONK_FALL_SPEED = 0.5;
  2417. _0x2b64bd.PLAYER_IMMUNE_TIME = 6;
  2418. _0x2b64bd.MOVE_SPEED_MAX = 0.075;
  2419. _0x2b64bd.SHELL_MOVE_SPEED_MAX = 0.35;
  2420. _0x2b64bd.FALL_SPEED_MAX = 0.35;
  2421. _0x2b64bd.FALL_SPEED_ACCEL = 0.085;
  2422. _0x2b64bd.JUMP_LENGTH_MAX = 20;
  2423. _0x2b64bd.JUMP_DECEL = 0.025;
  2424. _0x2b64bd.TRANSFORM_TIME = 175;
  2425. _0x2b64bd.TRANSFORM_THRESHOLD = 75;
  2426. _0x2b64bd.SPRITE = {};
  2427. _0x2b64bd.SPRITE_LIST = [{
  2428. 'NAME': "FLY0",
  2429. 'ID': 0,
  2430. 'INDEX': [
  2431. [104],
  2432. [88]
  2433. ]
  2434. }, {
  2435. 'NAME': "FLY1",
  2436. 'ID': 1,
  2437. 'INDEX': [
  2438. [105],
  2439. [89]
  2440. ]
  2441. }, {
  2442. 'NAME': "RUN0",
  2443. 'ID': 2,
  2444. 'INDEX': [
  2445. [102],
  2446. [86]
  2447. ]
  2448. }, {
  2449. 'NAME': "RUN1",
  2450. 'ID': 3,
  2451. 'INDEX': [
  2452. [103],
  2453. [87]
  2454. ]
  2455. }, {
  2456. 'NAME': "TRANSFORM",
  2457. 'ID': 4,
  2458. 'INDEX': 81
  2459. }, {
  2460. 'NAME': "SHELL",
  2461. 'ID': 5,
  2462. 'INDEX': 80
  2463. }];
  2464. for (_0x4f3eec = 0; _0x4f3eec < _0x2b64bd.SPRITE_LIST.length; _0x4f3eec++) _0x2b64bd.SPRITE[_0x2b64bd.SPRITE_LIST[_0x4f3eec].NAME] = _0x2b64bd.SPRITE_LIST[_0x4f3eec], _0x2b64bd.SPRITE[_0x2b64bd.SPRITE_LIST[_0x4f3eec]['ID']] = _0x2b64bd.SPRITE_LIST[_0x4f3eec];
  2465. _0x2b64bd.STATE = {};
  2466. _0x2b64bd.STATE_LIST = [{
  2467. 'NAME': "FLY",
  2468. 'ID': 0,
  2469. 'SPRITE': [_0x2b64bd.SPRITE.FLY0, _0x2b64bd.SPRITE.FLY1]
  2470. }, {
  2471. 'NAME': "RUN",
  2472. 'ID': 1,
  2473. 'SPRITE': [_0x2b64bd.SPRITE.RUN0, _0x2b64bd.SPRITE.RUN1]
  2474. }, {
  2475. 'NAME': "TRANSFORM",
  2476. 'ID': 2,
  2477. 'SPRITE': [_0x2b64bd.SPRITE.SHELL, _0x2b64bd.SPRITE.TRANSFORM]
  2478. }, {
  2479. 'NAME': "SHELL",
  2480. 'ID': 3,
  2481. 'SPRITE': [_0x2b64bd.SPRITE.SHELL]
  2482. }, {
  2483. 'NAME': "SPIN",
  2484. 'ID': 4,
  2485. 'SPRITE': [_0x2b64bd.SPRITE.SHELL]
  2486. }, {
  2487. 'NAME': "BONK",
  2488. 'ID': 81,
  2489. 'SPRITE': []
  2490. }];
  2491. for (_0x4f3eec = 0; _0x4f3eec < _0x2b64bd.STATE_LIST.length; _0x4f3eec++) _0x2b64bd.STATE[_0x2b64bd.STATE_LIST[_0x4f3eec].NAME] = _0x2b64bd.STATE_LIST[_0x4f3eec], _0x2b64bd.STATE[_0x2b64bd.STATE_LIST[_0x4f3eec]['ID']] = _0x2b64bd.STATE_LIST[_0x4f3eec];
  2492. _0x2b64bd.prototype.update = function(_0x1c9055) {
  2493. switch (_0x1c9055) {
  2494. case 1:
  2495. this.bonk();
  2496. break;
  2497. case 16:
  2498. this.stomped(!0);
  2499. break;
  2500. case 17:
  2501. this.stomped(!1);
  2502. break;
  2503. case 160:
  2504. this.enable();
  2505. }
  2506. };
  2507. _0x2b64bd.prototype.step = function() {
  2508. if (this.disabled) this.proximity();
  2509. else if (0 < this.disabledTimer && this.disabledTimer--, this.state === _0x2b64bd.STATE.BONK) this.bonkTimer++ > _0x2b64bd.BONK_TIME || 0 > this.pos['y'] + this.dim['y'] ? this.destroy() : (this.pos = _0x4628a4.add(this.pos, _0x4628a4.make(this.moveSpeed, this.fallSpeed)), this.moveSpeed *= _0x2b64bd.BONK_DECEL, this.fallSpeed = Math.max(this.fallSpeed - _0x2b64bd.FALL_SPEED_ACCEL, -_0x2b64bd.BONK_FALL_SPEED));
  2510. else {
  2511. this.anim++;
  2512. this.sprite = this.state.SPRITE[parseInt(this.anim / _0x2b64bd.ANIMATION_RATE) % this.state.SPRITE.length];
  2513. if (this.state === _0x2b64bd.STATE.SHELL || this.state === _0x2b64bd.STATE.TRANSFORM) --this.transformTimer < _0x2b64bd.TRANSFORM_THRESHOLD && this.setState(_0x2b64bd.STATE.TRANSFORM), 0 >= this.transformTimer && this.setState(_0x2b64bd.STATE.RUN);
  2514. 0 < this.immuneTimer && this.immuneTimer--;
  2515. this.control();
  2516. this.physics();
  2517. this.interaction();
  2518. this.sound();
  2519. 0 > this.pos['y'] && this.destroy();
  2520. }
  2521. };
  2522. _0x2b64bd.prototype.control = function() {
  2523. if (this.state === _0x2b64bd.STATE.FLY) this.moveSpeed = this.dir ? -_0x2b64bd.MOVE_SPEED_MAX : _0x2b64bd.MOVE_SPEED_MAX, this.grounded && (this.jump = 0);
  2524. else if (this.state === _0x2b64bd.STATE.RUN) this.moveSpeed = this.dir ? -_0x2b64bd.MOVE_SPEED_MAX : _0x2b64bd.MOVE_SPEED_MAX;
  2525. else if (this.state === _0x2b64bd.STATE.SPIN) this.moveSpeed = this.dir ? -_0x2b64bd.SHELL_MOVE_SPEED_MAX : _0x2b64bd.SHELL_MOVE_SPEED_MAX;
  2526. else if (this.state === _0x2b64bd.STATE.SHELL || this.state === _0x2b64bd.STATE.TRANSFORM) this.moveSpeed = 0;
  2527. this.jump > _0x2b64bd.JUMP_LENGTH_MAX && (this.jump = -1);
  2528. };
  2529. _0x2b64bd.prototype.physics = function() {
  2530. -1 !== this.jump ? (this.fallSpeed = _0x2b64bd.FALL_SPEED_MAX - this.jump * _0x2b64bd.JUMP_DECEL, this.jump++, this.grounded = !1) : (this.grounded && (this.fallSpeed = 0), this.fallSpeed = Math.max(this.fallSpeed - _0x2b64bd.FALL_SPEED_ACCEL, -_0x2b64bd.FALL_SPEED_MAX));
  2531. this.grounded && (this.fallSpeed = 0);
  2532. this.fallSpeed = Math.max(this.fallSpeed - _0x2b64bd.FALL_SPEED_ACCEL, -_0x2b64bd.FALL_SPEED_MAX);
  2533. var _0x22c299 = _0x4628a4.add(this.pos, _0x4628a4.make(this.moveSpeed, 0)),
  2534. _0x222dd9 = _0x4628a4.add(this.pos, _0x4628a4.make(this.moveSpeed, this.fallSpeed)),
  2535. _0x5c7066 = _0x4628a4.make(0 <= this.moveSpeed ? this.pos['x'] : this.pos['x'] + this.moveSpeed, 0 >= this.fallSpeed ? this.pos['y'] : this.pos['y'] + this.fallSpeed),
  2536. _0x5427e3 = _0x4628a4.make(this.dim['y'] + Math.abs(this.moveSpeed), this.dim['y'] + Math.abs(this.fallSpeed)),
  2537. _0x5c7066 = this.game.world.getZone(this.level, this.zone).getTiles(_0x5c7066, _0x5427e3),
  2538. _0x5427e3 = _0x4628a4.make(1, 0x1),
  2539. _0x47ff0b = !1;
  2540. this.grounded = !1;
  2541. for (var _0x3a0c40 = 0; _0x3a0c40 < _0x5c7066.length; _0x3a0c40++) {
  2542. var _0x32fd39 = _0x5c7066[_0x3a0c40];
  2543. _0x32fd39.definition.COLLIDE && _0x4c4bae.intersection(_0x32fd39.pos, _0x5427e3, _0x22c299, this.dim) && (this.pos['x'] + this.dim['x'] <= _0x32fd39.pos['x'] && _0x22c299['x'] + this.dim['x'] > _0x32fd39.pos['x'] ? (_0x22c299['x'] = _0x32fd39.pos['x'] - this.dim['x'], _0x222dd9['x'] = _0x22c299['x'], this.moveSpeed = 0, _0x47ff0b = !0) : this.pos['x'] >= _0x32fd39.pos['x'] + _0x5427e3['x'] && _0x22c299['x'] < _0x32fd39.pos['x'] + _0x5427e3['x'] && (_0x22c299['x'] = _0x32fd39.pos['x'] + _0x5427e3['x'], _0x222dd9['x'] = _0x22c299['x'], this.moveSpeed = 0, _0x47ff0b = !0));
  2544. }
  2545. for (_0x3a0c40 = 0; _0x3a0c40 < _0x5c7066.length; _0x3a0c40++) _0x32fd39 = _0x5c7066[_0x3a0c40], _0x32fd39.definition.COLLIDE && _0x4c4bae.intersection(_0x32fd39.pos, _0x5427e3, _0x222dd9, this.dim) && (this.pos['y'] >= _0x32fd39.pos['y'] + _0x5427e3['y'] && _0x222dd9['y'] < _0x32fd39.pos['y'] + _0x5427e3['y'] ? (_0x222dd9['y'] = _0x32fd39.pos['y'] + _0x5427e3['y'], this.grounded = !0) : this.pos['y'] + this.dim['y'] <= _0x32fd39.pos['y'] && _0x222dd9['y'] + this.dim['y'] > _0x32fd39.pos['y'] && (_0x222dd9['y'] = _0x32fd39.pos['y'] - this.dim['y'], this.jump = -1, this.fallSpeed = 0));
  2546. this.pos = _0x4628a4.make(_0x22c299['x'], _0x222dd9['y']);
  2547. _0x47ff0b && (this.dir = !this.dir);
  2548. };
  2549. _0x2b64bd.prototype.interaction = function() {
  2550. if (this.state === _0x2b64bd.STATE.SPIN)
  2551. for (var _0x3f35ab = 0; _0x3f35ab < this.game.objects.length; _0x3f35ab++) {
  2552. var _0x5dedc4 = this.game.objects[_0x3f35ab];
  2553. _0x5dedc4 === this || _0x5dedc4 instanceof _0x307949 || !_0x5dedc4.isTangible() || !_0x5dedc4.damage || _0x5dedc4.level === this.level && _0x5dedc4.zone === this.zone && _0x4c4bae.intersection(_0x5dedc4.pos, _0x5dedc4.dim, this.pos, this.dim) && _0x5dedc4.damage(this);
  2554. }
  2555. };
  2556. _0x2b64bd.prototype.proximity = function() {
  2557. var _0x55e5fb = this.game.getPlayer();
  2558. _0x55e5fb && !_0x55e5fb.dead && _0x55e5fb.level === this.level && _0x55e5fb.zone === this.zone && !this.proxHit && _0x4628a4.distance(_0x55e5fb.pos, this.pos) < _0x2b64bd.ENABLE_DIST && (this.game.out.push(_0x217d86.encode(this.level, this.zone, this.oid, 160)), this.proxHit = !0);
  2559. };
  2560. _0x2b64bd.prototype.sound = _0x2b132.prototype.sound;
  2561. _0x2b64bd.prototype.enable = function() {
  2562. this.disabled = !1;
  2563. this.disabledTimer = _0x2b64bd.ENABLE_FADE_TIME;
  2564. };
  2565. _0x2b64bd.prototype.disable = function() {
  2566. this.disabled = !0;
  2567. };
  2568. _0x2b64bd.prototype.damage = function(_0x54e061) {
  2569. this.dead || (this.bonk(), this.game.out.push(_0x217d86.encode(this.level, this.zone, this.oid, 1)));
  2570. };
  2571. _0x2b64bd.prototype.bonk = function() {
  2572. this.dead || (this.setState(_0x2b64bd.STATE.BONK), this.moveSpeed = _0x2b64bd.BONK_IMP['x'], this.fallSpeed = _0x2b64bd.BONK_IMP['y'], this.dead = !0, this.play("sfx/kick.wav", 1, 0.04));
  2573. };
  2574. _0x2b64bd.prototype.stomped = function(_0x2128e6) {
  2575. if (this.state === _0x2b64bd.STATE.FLY) this.setState(_0x2b64bd.STATE.RUN), this.jump = -1;
  2576. else if (this.state === _0x2b64bd.STATE.RUN) this.setState(_0x2b64bd.STATE.SHELL), this.transformTimer = _0x2b64bd.TRANSFORM_TIME;
  2577. else if (this.state === _0x2b64bd.STATE.SPIN) this.setState(_0x2b64bd.STATE.SHELL), this.transformTimer = _0x2b64bd.TRANSFORM_TIME;
  2578. else if (this.state === _0x2b64bd.STATE.SHELL || this.state === _0x2b64bd.STATE.TRANSFORM) this.setState(_0x2b64bd.STATE.SPIN), this.dir = _0x2128e6;
  2579. this.play("sfx/stomp.wav", 1, 0.04);
  2580. };
  2581. _0x2b64bd.prototype.playerCollide = function(_0x2839c3) {
  2582. this.dead || this.garbage || (this.state === _0x2b64bd.STATE.SHELL || this.state === _0x2b64bd.STATE.TRANSFORM ? (_0x2839c3 = 0 < _0x2839c3.pos['x'] - this.pos['x'], this.stomped(_0x2839c3), this.game.out.push(_0x217d86.encode(this.level, this.zone, this.oid, _0x2839c3 ? 16 : 0x11)), this.immuneTimer = _0x2b64bd.PLAYER_IMMUNE_TIME) : 0 >= this.immuneTimer && _0x2839c3.damage(this));
  2583. };
  2584. _0x2b64bd.prototype.playerStomp = function(_0x5ae7ce) {
  2585. if (!this.dead && !this.garbage) {
  2586. var _0x1c148e = 0 < _0x5ae7ce.pos['x'] - this.pos['x'];
  2587. _0x5ae7ce.bounce();
  2588. this.stomped(_0x1c148e);
  2589. this.immuneTimer = _0x2b64bd.PLAYER_IMMUNE_TIME;
  2590. this.game.out.push(_0x217d86.encode(this.level, this.zone, this.oid, _0x1c148e ? 16 : 0x11));
  2591. }
  2592. };
  2593. _0x2b64bd.prototype.playerBump = function(_0x2de6c8) {
  2594. this.dead || this.garbage || _0x2de6c8.damage(this);
  2595. };
  2596. _0x2b64bd.prototype.kill = function() {};
  2597. _0x2b64bd.prototype.destroy = _0x2b132.prototype.destroy;
  2598. _0x2b64bd.prototype.isTangible = _0x2b132.prototype.isTangible;
  2599. _0x2b64bd.prototype.setState = function(_0x4cf648) {
  2600. _0x4cf648 !== this.state && (this.state = _0x4cf648, 0 < _0x4cf648.SPRITE.length && (this.sprite = _0x4cf648.SPRITE[0]), this.anim = 0);
  2601. };
  2602. _0x2b64bd.prototype.draw = function(_0xd5e9e2) {
  2603. if (!this.disabled) {
  2604. var _0x599afe;
  2605. _0x599afe = this.state === _0x2b64bd.STATE.BONK ? 3 : 0x0 < this.disabledTimer ? 160 + parseInt(32 * (1 - this.disabledTimer / _0x2b64bd.ENABLE_FADE_TIME)) : 0;
  2606. if (this.sprite.INDEX instanceof Array)
  2607. for (var _0x584f40 = this.sprite.INDEX, _0x2d5951 = 0; _0x2d5951 < _0x584f40.length; _0x2d5951++)
  2608. for (var _0x592f4b = 0; _0x592f4b < _0x584f40[_0x2d5951].length; _0x592f4b++) {
  2609. var _0xeeb68a = _0x584f40[3 !== _0x599afe ? _0x2d5951 : _0x584f40.length - 1 - _0x2d5951][_0x592f4b];
  2610. switch (this.variant) {
  2611. case 1:
  2612. _0xeeb68a += _0x2b64bd.VARIANT_OFFSET;
  2613. }
  2614. _0xd5e9e2.push({
  2615. 'pos': _0x4628a4.add(this.pos, _0x4628a4.make(_0x592f4b, _0x2d5951)),
  2616. 'reverse': !this.dir,
  2617. 'index': _0xeeb68a,
  2618. 'mode': _0x599afe
  2619. });
  2620. } else {
  2621. _0xeeb68a = this.sprite.INDEX;
  2622. switch (this.variant) {
  2623. case 1:
  2624. _0xeeb68a += _0x2b64bd.VARIANT_OFFSET;
  2625. }
  2626. _0xd5e9e2.push({
  2627. 'pos': this.pos,
  2628. 'reverse': !this.dir,
  2629. 'index': _0xeeb68a,
  2630. 'mode': _0x599afe
  2631. });
  2632. }
  2633. }
  2634. };
  2635. _0x2b64bd.prototype.play = _0x2b132.prototype.play;
  2636. _0x2b132.REGISTER_OBJECT(_0x2b64bd);
  2637. "use strict";
  2638. function _0x4ec5a0(_0xed7344, _0xea8d70, _0x5dd120, _0x358135, _0xd2deec, _0x23c2b4, _0x34e7bd) {
  2639. _0x2b132.call(this, _0xed7344, _0xea8d70, _0x5dd120, _0x358135);
  2640. this.oid = _0xd2deec;
  2641. this.variant = isNaN(parseInt(_0x34e7bd)) ? 0 : parseInt(_0x34e7bd);
  2642. this.setState(parseInt(_0x23c2b4) ? _0x4ec5a0.STATE.FLY : _0x4ec5a0.STATE.RUN);
  2643. this.bonkTimer = this.anim = 0;
  2644. this.loc = [this.pos['y'] + 0.5 * _0x4ec5a0.FLY_DISTANCE, this.pos['y'] - 0.5 * _0x4ec5a0.FLY_DISTANCE];
  2645. this.dim = _0x4628a4.make(1, 0x1);
  2646. this.fallSpeed = this.moveSpeed = 0;
  2647. this.disabled = this.grounded = !1;
  2648. this.disabledTimer = 0;
  2649. this.proxHit = !1;
  2650. this.immuneTimer = 0;
  2651. this.rev = !1;
  2652. this.dir = !0;
  2653. this.disable();
  2654. }
  2655. _0x4ec5a0.ASYNC = !1;
  2656. _0x4ec5a0['ID'] = 19;
  2657. _0x4ec5a0.NAME = "KOOPA TROOPA";
  2658. _0x4ec5a0.FLY_DISTANCE = 3;
  2659. _0x4ec5a0.FLY_ACCEL = 0.0025;
  2660. _0x4ec5a0.FLY_SPEED_MAX = 0.075;
  2661. _0x4ec5a0.CHECK_DIST = 0.1;
  2662. _0x4ec5a0.SPRITE = {};
  2663. _0x4ec5a0.SPRITE_LIST = [{
  2664. 'NAME': "FLY0",
  2665. 'ID': 0,
  2666. 'INDEX': [
  2667. [100],
  2668. [84]
  2669. ]
  2670. }, {
  2671. 'NAME': "FLY1",
  2672. 'ID': 1,
  2673. 'INDEX': [
  2674. [101],
  2675. [85]
  2676. ]
  2677. }, {
  2678. 'NAME': "RUN0",
  2679. 'ID': 2,
  2680. 'INDEX': [
  2681. [98],
  2682. [82]
  2683. ]
  2684. }, {
  2685. 'NAME': "RUN1",
  2686. 'ID': 3,
  2687. 'INDEX': [
  2688. [99],
  2689. [83]
  2690. ]
  2691. }, {
  2692. 'NAME': "TRANSFORM",
  2693. 'ID': 4,
  2694. 'INDEX': 97
  2695. }, {
  2696. 'NAME': "SHELL",
  2697. 'ID': 5,
  2698. 'INDEX': 96
  2699. }];
  2700. for (_0x4f3eec = 0; _0x4f3eec < _0x4ec5a0.SPRITE_LIST.length; _0x4f3eec++) _0x4ec5a0.SPRITE[_0x4ec5a0.SPRITE_LIST[_0x4f3eec].NAME] = _0x4ec5a0.SPRITE_LIST[_0x4f3eec], _0x4ec5a0.SPRITE[_0x4ec5a0.SPRITE_LIST[_0x4f3eec]['ID']] = _0x4ec5a0.SPRITE_LIST[_0x4f3eec];
  2701. _0x4ec5a0.STATE = {};
  2702. _0x4ec5a0.STATE_LIST = [{
  2703. 'NAME': "FLY",
  2704. 'ID': 0,
  2705. 'SPRITE': [_0x4ec5a0.SPRITE.FLY0, _0x4ec5a0.SPRITE.FLY1]
  2706. }, {
  2707. 'NAME': "RUN",
  2708. 'ID': 1,
  2709. 'SPRITE': [_0x4ec5a0.SPRITE.RUN0, _0x4ec5a0.SPRITE.RUN1]
  2710. }, {
  2711. 'NAME': "TRANSFORM",
  2712. 'ID': 2,
  2713. 'SPRITE': [_0x4ec5a0.SPRITE.SHELL, _0x4ec5a0.SPRITE.TRANSFORM]
  2714. }, {
  2715. 'NAME': "SHELL",
  2716. 'ID': 3,
  2717. 'SPRITE': [_0x4ec5a0.SPRITE.SHELL]
  2718. }, {
  2719. 'NAME': "SPIN",
  2720. 'ID': 4,
  2721. 'SPRITE': [_0x4ec5a0.SPRITE.SHELL]
  2722. }, {
  2723. 'NAME': "BONK",
  2724. 'ID': 81,
  2725. 'SPRITE': []
  2726. }];
  2727. for (_0x4f3eec = 0; _0x4f3eec < _0x4ec5a0.STATE_LIST.length; _0x4f3eec++) _0x4ec5a0.STATE[_0x4ec5a0.STATE_LIST[_0x4f3eec].NAME] = _0x4ec5a0.STATE_LIST[_0x4f3eec], _0x4ec5a0.STATE[_0x4ec5a0.STATE_LIST[_0x4f3eec]['ID']] = _0x4ec5a0.STATE_LIST[_0x4f3eec];
  2728. _0x4ec5a0.prototype.update = _0x2b64bd.prototype.update;
  2729. _0x4ec5a0.prototype.step = function() {
  2730. if (this.disabled) this.proximity();
  2731. else if (0 < this.disabledTimer && this.disabledTimer--, this.state === _0x4ec5a0.STATE.BONK) this.bonkTimer++ > _0x2b64bd.BONK_TIME || 0 > this.pos['y'] + this.dim['y'] ? this.destroy() : (this.pos = _0x4628a4.add(this.pos, _0x4628a4.make(this.moveSpeed, this.fallSpeed)), this.moveSpeed *= _0x2b64bd.BONK_DECEL, this.fallSpeed = Math.max(this.fallSpeed - _0x2b64bd.FALL_SPEED_ACCEL, -_0x2b64bd.BONK_FALL_SPEED));
  2732. else {
  2733. this.anim++;
  2734. this.sprite = this.state.SPRITE[parseInt(this.anim / _0x2b64bd.ANIMATION_RATE) % this.state.SPRITE.length];
  2735. if (this.state === _0x4ec5a0.STATE.SHELL || this.state === _0x4ec5a0.STATE.TRANSFORM) --this.transformTimer < _0x2b64bd.TRANSFORM_THRESHOLD && this.setState(_0x4ec5a0.STATE.TRANSFORM), 0 >= this.transformTimer && this.setState(_0x4ec5a0.STATE.RUN);
  2736. 0 < this.immuneTimer && this.immuneTimer--;
  2737. this.control();
  2738. this.physics();
  2739. this.interaction();
  2740. this.sound();
  2741. 0 > this.pos['y'] && this.destroy();
  2742. }
  2743. };
  2744. _0x4ec5a0.prototype.control = function() {
  2745. this.state === _0x4ec5a0.STATE.FLY && (this.moveSpeed = this.dir ? -_0x2b64bd.MOVE_SPEED_MAX : _0x2b64bd.MOVE_SPEED_MAX);
  2746. this.state === _0x4ec5a0.STATE.RUN && (this.grounded && !this.checkGround() && (this.dir = !this.dir), this.moveSpeed = this.dir ? -_0x2b64bd.MOVE_SPEED_MAX : _0x2b64bd.MOVE_SPEED_MAX);
  2747. this.state === _0x4ec5a0.STATE.SPIN && (this.moveSpeed = this.dir ? -_0x2b64bd.SHELL_MOVE_SPEED_MAX : _0x2b64bd.SHELL_MOVE_SPEED_MAX);
  2748. if (this.state === _0x4ec5a0.STATE.SHELL || this.state === _0x4ec5a0.STATE.TRANSFORM) this.moveSpeed = 0;
  2749. };
  2750. _0x4ec5a0.prototype.physics = function() {
  2751. if (this.state === _0x4ec5a0.STATE.FLY) this.rev ? (this.fallSpeed = Math.min(_0x4ec5a0.FLY_SPEED_MAX, this.fallSpeed + _0x4ec5a0.FLY_ACCEL), this.pos['y'] += this.fallSpeed, this.pos['y'] >= this.loc[0] && (this.rev = !1)) : (this.fallSpeed = Math.max(-_0x4ec5a0.FLY_SPEED_MAX, this.fallSpeed - _0x4ec5a0.FLY_ACCEL), this.pos['y'] += this.fallSpeed, this.pos['y'] <= this.loc[1] && (this.rev = !0));
  2752. else {
  2753. this.grounded && (this.fallSpeed = 0);
  2754. this.fallSpeed = Math.max(this.fallSpeed - _0x2b64bd.FALL_SPEED_ACCEL, -_0x2b64bd.FALL_SPEED_MAX);
  2755. var _0x412131 = _0x4628a4.add(this.pos, _0x4628a4.make(this.moveSpeed, 0)),
  2756. _0x42d3f6 = _0x4628a4.add(this.pos, _0x4628a4.make(this.moveSpeed, this.fallSpeed)),
  2757. _0x49ef6d = _0x4628a4.make(0 <= this.moveSpeed ? this.pos['x'] : this.pos['x'] + this.moveSpeed, 0 >= this.fallSpeed ? this.pos['y'] : this.pos['y'] + this.fallSpeed),
  2758. _0x3cd9fa = _0x4628a4.make(this.dim['y'] + Math.abs(this.moveSpeed), this.dim['y'] + Math.abs(this.fallSpeed)),
  2759. _0x49ef6d = this.game.world.getZone(this.level, this.zone).getTiles(_0x49ef6d, _0x3cd9fa),
  2760. _0x3cd9fa = _0x4628a4.make(1, 0x1),
  2761. _0x1d8e19 = !1;
  2762. this.grounded = !1;
  2763. for (var _0x2a37f3 = 0; _0x2a37f3 < _0x49ef6d.length; _0x2a37f3++) {
  2764. var _0x294a63 = _0x49ef6d[_0x2a37f3];
  2765. _0x294a63.definition.COLLIDE && _0x4c4bae.intersection(_0x294a63.pos, _0x3cd9fa, _0x412131, this.dim) && (this.pos['x'] + this.dim['x'] <= _0x294a63.pos['x'] && _0x412131['x'] + this.dim['x'] > _0x294a63.pos['x'] ? (_0x412131['x'] = _0x294a63.pos['x'] - this.dim['x'], _0x42d3f6['x'] = _0x412131['x'], this.moveSpeed = 0, _0x1d8e19 = !0) : this.pos['x'] >= _0x294a63.pos['x'] + _0x3cd9fa['x'] && _0x412131['x'] < _0x294a63.pos['x'] + _0x3cd9fa['x'] && (_0x412131['x'] = _0x294a63.pos['x'] + _0x3cd9fa['x'], _0x42d3f6['x'] = _0x412131['x'], this.moveSpeed = 0, _0x1d8e19 = !0));
  2766. }
  2767. for (_0x2a37f3 = 0; _0x2a37f3 < _0x49ef6d.length; _0x2a37f3++) _0x294a63 = _0x49ef6d[_0x2a37f3], _0x294a63.definition.COLLIDE && _0x4c4bae.intersection(_0x294a63.pos, _0x3cd9fa, _0x42d3f6, this.dim) && (this.pos['y'] >= _0x294a63.pos['y'] + _0x3cd9fa['y'] && _0x42d3f6['y'] < _0x294a63.pos['y'] + _0x3cd9fa['y'] ? (_0x42d3f6['y'] = _0x294a63.pos['y'] + _0x3cd9fa['y'], this.fallSpeed = 0, this.grounded = !0) : this.pos['y'] + this.dim['y'] <= _0x294a63.pos['y'] && _0x42d3f6['y'] + this.dim['y'] > _0x294a63.pos['y'] && (_0x42d3f6['y'] = _0x294a63.pos['y'] - this.dim['y'], this.fallSpeed = 0));
  2768. this.pos = _0x4628a4.make(_0x412131['x'], _0x42d3f6['y']);
  2769. _0x1d8e19 && (this.dir = !this.dir);
  2770. }
  2771. };
  2772. _0x4ec5a0.prototype.interaction = function() {
  2773. if (this.state === _0x4ec5a0.STATE.SPIN)
  2774. for (var _0x35cc9e = 0; _0x35cc9e < this.game.objects.length; _0x35cc9e++) {
  2775. var _0x19c92e = this.game.objects[_0x35cc9e];
  2776. _0x19c92e === this || _0x19c92e instanceof _0x307949 || !_0x19c92e.isTangible() || !_0x19c92e.damage || _0x19c92e.level === this.level && _0x19c92e.zone === this.zone && _0x4c4bae.intersection(_0x19c92e.pos, _0x19c92e.dim, this.pos, this.dim) && _0x19c92e.damage();
  2777. }
  2778. };
  2779. _0x4ec5a0.prototype.sound = _0x2b132.prototype.sound;
  2780. _0x4ec5a0.prototype.checkGround = function() {
  2781. var _0x47d908 = this.dir ? _0x4628a4.add(this.pos, _0x4628a4.make(-_0x4ec5a0.CHECK_DIST, 0)) : _0x4628a4.add(this.pos, _0x4628a4.make(_0x4ec5a0.CHECK_DIST + this.dim['x'], 0));
  2782. _0x47d908['y'] -= 1.5;
  2783. return this.game.world.getZone(this.level, this.zone).getTile(_0x47d908).definition.COLLIDE;
  2784. };
  2785. _0x4ec5a0.prototype.proximity = _0x2b64bd.prototype.proximity;
  2786. _0x4ec5a0.prototype.enable = _0x2b64bd.prototype.enable;
  2787. _0x4ec5a0.prototype.disable = _0x2b64bd.prototype.disable;
  2788. _0x4ec5a0.prototype.damage = _0x2b64bd.prototype.damage;
  2789. _0x4ec5a0.prototype.bonk = function() {
  2790. this.dead || (this.setState(_0x4ec5a0.STATE.BONK), this.moveSpeed = _0x2b64bd.BONK_IMP['x'], this.fallSpeed = _0x2b64bd.BONK_IMP['y'], this.dead = !0, this.play("sfx/kick.wav", 1, 0.04));
  2791. };
  2792. _0x4ec5a0.prototype.stomped = function(_0x427a5b) {
  2793. if (this.state === _0x4ec5a0.STATE.FLY) this.setState(_0x4ec5a0.STATE.RUN);
  2794. else if (this.state === _0x4ec5a0.STATE.RUN) this.setState(_0x4ec5a0.STATE.SHELL), this.transformTimer = _0x2b64bd.TRANSFORM_TIME;
  2795. else if (this.state === _0x4ec5a0.STATE.SPIN) this.setState(_0x4ec5a0.STATE.SHELL), this.transformTimer = _0x2b64bd.TRANSFORM_TIME;
  2796. else if (this.state === _0x4ec5a0.STATE.SHELL || this.state === _0x4ec5a0.STATE.TRANSFORM) this.setState(_0x4ec5a0.STATE.SPIN), this.dir = _0x427a5b;
  2797. this.play("sfx/stomp.wav", 1, 0.04);
  2798. };
  2799. _0x4ec5a0.prototype.playerCollide = function(_0x3a4278) {
  2800. this.dead || this.garbage || (this.state === _0x4ec5a0.STATE.SHELL || this.state === _0x4ec5a0.STATE.TRANSFORM ? (_0x3a4278 = 0 < _0x3a4278.pos['x'] - this.pos['x'], this.stomped(_0x3a4278), this.game.out.push(_0x217d86.encode(this.level, this.zone, this.oid, _0x3a4278 ? 16 : 0x11)), this.immuneTimer = _0x2b64bd.PLAYER_IMMUNE_TIME) : 0 >= this.immuneTimer && _0x3a4278.damage(this));
  2801. };
  2802. _0x4ec5a0.prototype.playerStomp = _0x2b64bd.prototype.playerStomp;
  2803. _0x4ec5a0.prototype.playerBump = _0x2b64bd.prototype.playerBump;
  2804. _0x4ec5a0.prototype.kill = _0x2b64bd.prototype.kill;
  2805. _0x4ec5a0.prototype.destroy = _0x2b64bd.prototype.destroy;
  2806. _0x4ec5a0.prototype.isTangible = _0x2b64bd.prototype.isTangible;
  2807. _0x4ec5a0.prototype.setState = _0x2b64bd.prototype.setState;
  2808. _0x4ec5a0.prototype.draw = function(_0x10020f) {
  2809. if (!this.disabled) {
  2810. var _0x256715;
  2811. _0x256715 = this.state === _0x4ec5a0.STATE.BONK ? 3 : 0x0 < this.disabledTimer ? 160 + parseInt(32 * (1 - this.disabledTimer / _0x2b64bd.ENABLE_FADE_TIME)) : 0;
  2812. if (this.sprite.INDEX instanceof Array)
  2813. for (var _0x4a672a = this.sprite.INDEX, _0x46bc6f = 0; _0x46bc6f < _0x4a672a.length; _0x46bc6f++)
  2814. for (var _0xdbcbf = 0; _0xdbcbf < _0x4a672a[_0x46bc6f].length; _0xdbcbf++) {
  2815. var _0x12d039 = _0x4a672a[3 !== _0x256715 ? _0x46bc6f : _0x4a672a.length - 1 - _0x46bc6f][_0xdbcbf];
  2816. switch (this.variant) {
  2817. case 1:
  2818. _0x12d039 += _0x2b64bd.VARIANT_OFFSET;
  2819. }
  2820. _0x10020f.push({
  2821. 'pos': _0x4628a4.add(this.pos, _0x4628a4.make(_0xdbcbf, _0x46bc6f)),
  2822. 'reverse': !this.dir,
  2823. 'index': _0x12d039,
  2824. 'mode': _0x256715
  2825. });
  2826. } else {
  2827. _0x12d039 = this.sprite.INDEX;
  2828. switch (this.variant) {
  2829. case 1:
  2830. _0x12d039 += _0x2b64bd.VARIANT_OFFSET;
  2831. }
  2832. _0x10020f.push({
  2833. 'pos': this.pos,
  2834. 'reverse': !this.dir,
  2835. 'index': _0x12d039,
  2836. 'mode': _0x256715
  2837. });
  2838. }
  2839. }
  2840. };
  2841. _0x4ec5a0.prototype.play = _0x2b132.prototype.play;
  2842. _0x2b132.REGISTER_OBJECT(_0x4ec5a0);
  2843. "use strict";
  2844. function _0x70c5e6(_0x10e398, _0x488778, _0x5c3eec, _0x3b14b3, _0x59252f, _0x578a7d) {
  2845. _0x2b132.call(this, _0x10e398, _0x488778, _0x5c3eec, _0x4628a4.add(_0x3b14b3, _0x4628a4.make(0.6, 0)));
  2846. this.oid = _0x59252f;
  2847. this.variant = isNaN(parseInt(_0x578a7d)) ? 0 : parseInt(_0x578a7d);
  2848. this.setState(_0x70c5e6.STATE.IDLE);
  2849. this.bonkTimer = this.anim = 0;
  2850. this.loc = [_0x4628a4.copy(this.pos), _0x4628a4.add(this.pos, _0x4628a4.make(0, -1.5))];
  2851. this.dim = _0x4628a4.make(0.8, 1);
  2852. this.dir = this.fallSpeed = this.moveSpeed = 0;
  2853. }
  2854. _0x70c5e6.ASYNC = !1;
  2855. _0x70c5e6['ID'] = 22;
  2856. _0x70c5e6.NAME = "UNSPELLABLE PLANT";
  2857. _0x70c5e6.ANIMATION_RATE = 3;
  2858. _0x70c5e6.VARIANT_OFFSET = 32;
  2859. _0x70c5e6.SOFFSET = _0x4628a4.make(-0.1, 0);
  2860. _0x70c5e6.BONK_TIME = 90;
  2861. _0x70c5e6.BONK_IMP = _0x4628a4.make(0.25, 0.4);
  2862. _0x70c5e6.BONK_DECEL = 0.925;
  2863. _0x70c5e6.BONK_FALL_SPEED = 0.5;
  2864. _0x70c5e6.FALL_SPEED_ACCEL = 0.085;
  2865. _0x70c5e6.WAIT_TIME = 25;
  2866. _0x70c5e6.TRAVEL_SPEED = 0.05;
  2867. _0x70c5e6.SPRITE = {};
  2868. _0x70c5e6.SPRITE_LIST = [{
  2869. 'NAME': "IDLE0",
  2870. 'ID': 0,
  2871. 'INDEX': [
  2872. [106],
  2873. [90]
  2874. ]
  2875. }, {
  2876. 'NAME': "IDLE1",
  2877. 'ID': 1,
  2878. 'INDEX': [
  2879. [107],
  2880. [91]
  2881. ]
  2882. }];
  2883. for (_0x4f3eec = 0; _0x4f3eec < _0x70c5e6.SPRITE_LIST.length; _0x4f3eec++) _0x70c5e6.SPRITE[_0x70c5e6.SPRITE_LIST[_0x4f3eec].NAME] = _0x70c5e6.SPRITE_LIST[_0x4f3eec], _0x70c5e6.SPRITE[_0x70c5e6.SPRITE_LIST[_0x4f3eec]['ID']] = _0x70c5e6.SPRITE_LIST[_0x4f3eec];
  2884. _0x70c5e6.STATE = {};
  2885. _0x70c5e6.STATE_LIST = [{
  2886. 'NAME': "IDLE",
  2887. 'ID': 0,
  2888. 'SPRITE': [_0x70c5e6.SPRITE.IDLE0, _0x70c5e6.SPRITE.IDLE1]
  2889. }, {
  2890. 'NAME': "BONK",
  2891. 'ID': 81,
  2892. 'SPRITE': []
  2893. }];
  2894. for (_0x4f3eec = 0; _0x4f3eec < _0x70c5e6.STATE_LIST.length; _0x4f3eec++) _0x70c5e6.STATE[_0x70c5e6.STATE_LIST[_0x4f3eec].NAME] = _0x70c5e6.STATE_LIST[_0x4f3eec], _0x70c5e6.STATE[_0x70c5e6.STATE_LIST[_0x4f3eec]['ID']] = _0x70c5e6.STATE_LIST[_0x4f3eec];
  2895. _0x70c5e6.prototype.update = function(_0xc40cf) {
  2896. switch (_0xc40cf) {
  2897. case 1:
  2898. this.bonk();
  2899. }
  2900. };
  2901. _0x70c5e6.prototype.step = function() {
  2902. this.state === _0x70c5e6.STATE.BONK ? this.bonkTimer++ > _0x70c5e6.BONK_TIME || 0 > this.pos['y'] + this.dim['y'] ? this.destroy() : (this.pos = _0x4628a4.add(this.pos, _0x4628a4.make(this.moveSpeed, this.fallSpeed)), this.moveSpeed *= _0x70c5e6.BONK_DECEL, this.fallSpeed = Math.max(this.fallSpeed - _0x70c5e6.FALL_SPEED_ACCEL, -_0x70c5e6.BONK_FALL_SPEED)) : (this.anim++, this.sprite = this.state.SPRITE[parseInt(this.anim / _0x70c5e6.ANIMATION_RATE) % this.state.SPRITE.length], 0 < --this.waitTimer || (this.control(), this.physics(), this.sound()));
  2903. };
  2904. _0x70c5e6.prototype.control = function() {};
  2905. _0x70c5e6.prototype.physics = function() {
  2906. var _0x295dec = this.loc[this.dir ? 0 : 0x1];
  2907. _0x4628a4.distance(this.pos, _0x295dec) <= _0x70c5e6.TRAVEL_SPEED ? (this.pos = _0x295dec, this.dir = !this.dir, this.waitTimer = _0x70c5e6.WAIT_TIME) : this.pos = _0x4628a4.add(this.pos, _0x4628a4.scale(_0x4628a4.normalize(_0x4628a4.subtract(_0x295dec, this.pos)), _0x70c5e6.TRAVEL_SPEED));
  2908. };
  2909. _0x70c5e6.prototype.sound = _0x2b132.prototype.sound;
  2910. _0x70c5e6.prototype.damage = function(_0x17ca7d) {
  2911. this.dead || (this.bonk(), this.game.out.push(_0x217d86.encode(this.level, this.zone, this.oid, 1)));
  2912. };
  2913. _0x70c5e6.prototype.bonk = function() {
  2914. this.dead || (this.setState(_0x70c5e6.STATE.BONK), this.moveSpeed = _0x70c5e6.BONK_IMP['x'], this.fallSpeed = _0x70c5e6.BONK_IMP['y'], this.dead = !0, this.play("sfx/kick.wav", 1, 0.04));
  2915. };
  2916. _0x70c5e6.prototype.playerCollide = function(_0x1d79bc) {
  2917. this.dead || this.garbage || _0x1d79bc.damage(this);
  2918. };
  2919. _0x70c5e6.prototype.playerStomp = function(_0x5c2317) {
  2920. this.dead || this.garbage || _0x5c2317.damage(this);
  2921. };
  2922. _0x70c5e6.prototype.playerBump = function(_0x14daa1) {
  2923. this.dead || this.garbage || _0x14daa1.damage(this);
  2924. };
  2925. _0x70c5e6.prototype.kill = function() {};
  2926. _0x70c5e6.prototype.destroy = _0x2b132.prototype.destroy;
  2927. _0x70c5e6.prototype.isTangible = _0x2b132.prototype.isTangible;
  2928. _0x70c5e6.prototype.setState = function(_0x1762e0) {
  2929. _0x1762e0 !== this.state && (this.state = _0x1762e0, 0 < _0x1762e0.SPRITE.length && (this.sprite = _0x1762e0.SPRITE[0]), this.anim = 0);
  2930. };
  2931. _0x70c5e6.prototype.draw = function(_0x5d3d02) {
  2932. var _0x3a6e0e;
  2933. _0x3a6e0e = this.state === _0x70c5e6.STATE.BONK ? 3 : 0x0;
  2934. if (this.sprite.INDEX instanceof Array)
  2935. for (var _0x370a41 = this.sprite.INDEX, _0x552245 = 0; _0x552245 < _0x370a41.length; _0x552245++)
  2936. for (var _0x281e5e = 0; _0x281e5e < _0x370a41[_0x552245].length; _0x281e5e++) {
  2937. var _0x2bd14d = _0x370a41[_0x3a6e0e ? _0x370a41.length - 1 - _0x552245 : _0x552245][_0x281e5e];
  2938. switch (this.variant) {
  2939. case 1:
  2940. _0x2bd14d += _0x70c5e6.VARIANT_OFFSET;
  2941. }
  2942. _0x5d3d02.push({
  2943. 'pos': _0x4628a4.add(_0x4628a4.add(this.pos, _0x4628a4.make(_0x281e5e, _0x552245)), _0x70c5e6.SOFFSET),
  2944. 'reverse': !this.dir,
  2945. 'index': _0x2bd14d,
  2946. 'mode': _0x3a6e0e
  2947. });
  2948. } else {
  2949. _0x2bd14d = this.sprite.INDEX;
  2950. switch (this.variant) {
  2951. case 1:
  2952. _0x2bd14d += _0x70c5e6.VARIANT_OFFSET;
  2953. }
  2954. _0x5d3d02.push({
  2955. 'pos': _0x4628a4.add(this.pos, _0x70c5e6.SOFFSET),
  2956. 'reverse': !this.dir,
  2957. 'index': _0x2bd14d,
  2958. 'mode': _0x3a6e0e
  2959. });
  2960. }
  2961. };
  2962. _0x70c5e6.prototype.play = _0x2b132.prototype.play;
  2963. _0x2b132.REGISTER_OBJECT(_0x70c5e6);
  2964. "use strict";
  2965. function _0x2e2bc2(_0x2256fa, _0x3b8e43, _0x95fca2, _0x2f7128, _0x604645, _0x599d04, _0x2ce4c7) {
  2966. _0x2b132.call(this, _0x2256fa, _0x3b8e43, _0x95fca2, _0x2f7128);
  2967. this.oid = _0x604645;
  2968. this.setState(_0x2e2bc2.STATE.IDLE);
  2969. this.delay = isNaN(parseInt(_0x599d04)) ? _0x2e2bc2.DELAY_DEFAULT : parseInt(_0x599d04);
  2970. this.impulse = isNaN(parseFloat(_0x2ce4c7)) ? 1 : parseFloat(_0x2ce4c7);
  2971. this.anim = 0;
  2972. this.disabled = !1;
  2973. this.delayTimer = this.delay;
  2974. this.bonkTimer = 0;
  2975. this.pos['x'] += _0x2e2bc2.SOFFSET['x'];
  2976. this.loc = _0x4628a4.copy(this.pos);
  2977. this.moveSpeed = this.fallSpeed = 0;
  2978. this.dim = _0x4628a4.make(0.7, 0.7);
  2979. this.dir = !0;
  2980. }
  2981. _0x2e2bc2.ASYNC = !1;
  2982. _0x2e2bc2['ID'] = 21;
  2983. _0x2e2bc2.NAME = "FLYING FISH";
  2984. _0x2e2bc2.ANIMATION_RATE = 3;
  2985. _0x2e2bc2.BONK_TIME = 90;
  2986. _0x2e2bc2.BONK_IMP = _0x4628a4.make(0.25, 0.4);
  2987. _0x2e2bc2.BONK_DECEL = 0.925;
  2988. _0x2e2bc2.BONK_FALL_SPEED = 0.5;
  2989. _0x2e2bc2.BONK_FALL_ACCEL = 0.085;
  2990. _0x2e2bc2.DELAY_DEFAULT = 150;
  2991. _0x2e2bc2.IMPULSE = _0x4628a4.make(0.225, 0.335);
  2992. _0x2e2bc2.DRAG = 0.996;
  2993. _0x2e2bc2.FALL_SPEED_ACCEL = 0.0055;
  2994. _0x2e2bc2.SOFFSET = _0x4628a4.make(0.15, 0.15);
  2995. _0x2e2bc2.SPRITE = {};
  2996. _0x2e2bc2.SPRITE_LIST = [{
  2997. 'NAME': "IDLE0",
  2998. 'ID': 0,
  2999. 'INDEX': 206
  3000. }, {
  3001. 'NAME': "IDLE1",
  3002. 'ID': 1,
  3003. 'INDEX': 207
  3004. }];
  3005. for (_0x4f3eec = 0; _0x4f3eec < _0x2e2bc2.SPRITE_LIST.length; _0x4f3eec++) _0x2e2bc2.SPRITE[_0x2e2bc2.SPRITE_LIST[_0x4f3eec].NAME] = _0x2e2bc2.SPRITE_LIST[_0x4f3eec], _0x2e2bc2.SPRITE[_0x2e2bc2.SPRITE_LIST[_0x4f3eec]['ID']] = _0x2e2bc2.SPRITE_LIST[_0x4f3eec];
  3006. _0x2e2bc2.STATE = {};
  3007. _0x2e2bc2.STATE_LIST = [{
  3008. 'NAME': "IDLE",
  3009. 'ID': 0,
  3010. 'SPRITE': [_0x2e2bc2.SPRITE.IDLE0, _0x2e2bc2.SPRITE.IDLE1]
  3011. }, {
  3012. 'NAME': "BONK",
  3013. 'ID': 81,
  3014. 'SPRITE': []
  3015. }];
  3016. for (_0x4f3eec = 0; _0x4f3eec < _0x2e2bc2.STATE_LIST.length; _0x4f3eec++) _0x2e2bc2.STATE[_0x2e2bc2.STATE_LIST[_0x4f3eec].NAME] = _0x2e2bc2.STATE_LIST[_0x4f3eec], _0x2e2bc2.STATE[_0x2e2bc2.STATE_LIST[_0x4f3eec]['ID']] = _0x2e2bc2.STATE_LIST[_0x4f3eec];
  3017. _0x2e2bc2.prototype.update = function(_0x48235a) {
  3018. switch (_0x48235a) {
  3019. case 1:
  3020. this.bonk();
  3021. }
  3022. };
  3023. _0x2e2bc2.prototype.step = function() {
  3024. this.state === _0x2e2bc2.STATE.BONK ? this.bonkTimer++ > _0x2e2bc2.BONK_TIME || 0 > this.pos['y'] + this.dim['y'] ? this.destroy() : (this.pos = _0x4628a4.add(this.pos, _0x4628a4.make(this.moveSpeed, this.fallSpeed)), this.moveSpeed *= _0x2e2bc2.BONK_DECEL, this.fallSpeed = Math.max(this.fallSpeed - _0x2e2bc2.BONK_FALL_ACCEL, -_0x2e2bc2.BONK_FALL_SPEED)) : (this.anim++, this.sprite = this.state.SPRITE[parseInt(this.anim / _0x2e2bc2.ANIMATION_RATE) % this.state.SPRITE.length], 0 < this.delayTimer ? this.delayTimer-- : this.jump(), this.physics(), this.sound());
  3025. };
  3026. _0x2e2bc2.prototype.physics = function() {
  3027. this.pos['y'] > this.loc['y'] || 0 < this.fallSpeed ? (this.fallSpeed = (this.fallSpeed - _0x2e2bc2.FALL_SPEED_ACCEL) * _0x2e2bc2.DRAG, this.pos['x'] += this.moveSpeed * _0x2e2bc2.DRAG, this.pos['y'] += this.fallSpeed) : this.disable();
  3028. };
  3029. _0x2e2bc2.prototype.sound = _0x2b132.prototype.sound;
  3030. _0x2e2bc2.prototype.jump = function() {
  3031. this.enable();
  3032. this.pos = _0x4628a4.copy(this.loc);
  3033. this.fallSpeed = _0x2e2bc2.IMPULSE['y'] * this.impulse;
  3034. this.moveSpeed = _0x2e2bc2.IMPULSE['x'] * this.impulse;
  3035. this.delayTimer = this.delay;
  3036. };
  3037. _0x2e2bc2.prototype.disable = function() {
  3038. this.disabled = !0;
  3039. };
  3040. _0x2e2bc2.prototype.enable = function() {
  3041. this.disabled = !1;
  3042. };
  3043. _0x2e2bc2.prototype.damage = function(_0x23b9a3) {
  3044. this.dead || (this.bonk(), this.game.out.push(_0x217d86.encode(this.level, this.zone, this.oid, 1)));
  3045. };
  3046. _0x2e2bc2.prototype.bonk = function() {
  3047. this.dead || (this.setState(_0x2e2bc2.STATE.BONK), this.moveSpeed = _0x2e2bc2.BONK_IMP['x'], this.fallSpeed = _0x2e2bc2.BONK_IMP['y'], this.dead = !0, this.play("sfx/kick.wav", 1, 0.04));
  3048. };
  3049. _0x2e2bc2.prototype.playerCollide = function(_0x342a0c) {
  3050. this.dead || this.garbage || _0x342a0c.damage(this);
  3051. };
  3052. _0x2e2bc2.prototype.playerStomp = function(_0x452180) {
  3053. this.dead || this.garbage || (this.bonk(), _0x452180.bounce(), this.game.out.push(_0x217d86.encode(this.level, this.zone, this.oid, 1)));
  3054. };
  3055. _0x2e2bc2.prototype.playerBump = function(_0x24e94a) {
  3056. this.playerCollide(_0x24e94a);
  3057. };
  3058. _0x2e2bc2.prototype.kill = function() {};
  3059. _0x2e2bc2.prototype.isTangible = _0x2b132.prototype.isTangible;
  3060. _0x2e2bc2.prototype.destroy = _0x2b132.prototype.destroy;
  3061. _0x2e2bc2.prototype.setState = function(_0x454f61) {
  3062. _0x454f61 !== this.state && (this.state = _0x454f61, 0 < _0x454f61.SPRITE.length && (this.sprite = _0x454f61.SPRITE[0]), this.anim = 0);
  3063. };
  3064. _0x2e2bc2.prototype.draw = function(_0x4d3c89) {
  3065. if (!this.disabled) {
  3066. var _0x2cd89f;
  3067. _0x2cd89f = this.state === _0x2e2bc2.STATE.BONK ? 3 : 0x0;
  3068. _0x4d3c89.push({
  3069. 'pos': _0x4628a4.subtract(this.pos, _0x2e2bc2.SOFFSET),
  3070. 'reverse': this.dir,
  3071. 'index': this.sprite.INDEX,
  3072. 'mode': _0x2cd89f
  3073. });
  3074. }
  3075. };
  3076. _0x2e2bc2.prototype.play = _0x2b132.prototype.play;
  3077. _0x2b132.REGISTER_OBJECT(_0x2e2bc2);
  3078. "use strict";
  3079. function _0x3bb61f(_0x318daf, _0x5afdd5, _0x5be344, _0xb1c457, _0x11dd4d, _0x547cdb) {
  3080. _0x2b132.call(this, _0x318daf, _0x5afdd5, _0x5be344, _0xb1c457);
  3081. this.oid = _0x11dd4d;
  3082. this.setState(_0x3bb61f.STATE.IDLE);
  3083. this.bonkTimer = this.anim = 0;
  3084. this.dim = _0x4628a4.make(1, 1.5);
  3085. this.fallSpeed = this.moveSpeed = 0;
  3086. this.disabled = this.grounded = !1;
  3087. this.disabledTimer = 0;
  3088. this.proxHit = !1;
  3089. this.hammer = void 0;
  3090. this.loc = 1 === parseInt(_0x547cdb) ? [this.pos['x'] + _0x3bb61f.MOVE_AREA, this.pos['x']] : [this.pos['x'], this.pos['x'] - _0x3bb61f.MOVE_AREA];
  3091. this.groundTimer = this.double = this.attackAnimTimer = this.attackTimer = 0;
  3092. this.jumpTimer = -1;
  3093. this.reverse = !1;
  3094. this.dir = !0;
  3095. this.disable();
  3096. }
  3097. _0x3bb61f.ASYNC = !1;
  3098. _0x3bb61f['ID'] = 49;
  3099. _0x3bb61f.NAME = "HAMMER BRO";
  3100. _0x3bb61f.ANIMATION_RATE = 5;
  3101. _0x3bb61f.ENABLE_FADE_TIME = 15;
  3102. _0x3bb61f.ENABLE_DIST = 33;
  3103. _0x3bb61f.BONK_TIME = 90;
  3104. _0x3bb61f.BONK_IMP = _0x4628a4.make(0.25, 0.4);
  3105. _0x3bb61f.BONK_DECEL = 0.925;
  3106. _0x3bb61f.BONK_FALL_SPEED = 0.5;
  3107. _0x3bb61f.MOVE_SPEED_MAX = 0.095;
  3108. _0x3bb61f.JUMP_DELAY = 55;
  3109. _0x3bb61f.MOVE_AREA = 4;
  3110. _0x3bb61f.JUMP_LENGTH = 8;
  3111. _0x3bb61f.JUMP_DECEL = 0.009;
  3112. _0x3bb61f.ATTACK_DELAY = 75;
  3113. _0x3bb61f.DOUBLE_RATE = 5;
  3114. _0x3bb61f.ATTACK_ANIM_LENGTH = 13;
  3115. _0x3bb61f.PROJ_OFFSET = _0x4628a4.make(0.5, 1.25);
  3116. _0x3bb61f.FALL_SPEED_MAX = 0.3;
  3117. _0x3bb61f.FALL_SPEED_ACCEL = 0.085;
  3118. _0x3bb61f.SPRITE = {};
  3119. _0x3bb61f.SPRITE_LIST = [{
  3120. 'NAME': "IDLE0",
  3121. 'ID': 0,
  3122. 'INDEX': [
  3123. [110],
  3124. [94]
  3125. ]
  3126. }, {
  3127. 'NAME': "IDLE1",
  3128. 'ID': 1,
  3129. 'INDEX': [
  3130. [109],
  3131. [93]
  3132. ]
  3133. }, {
  3134. 'NAME': "ATTACK",
  3135. 'ID': 2,
  3136. 'INDEX': [
  3137. [108],
  3138. [92]
  3139. ]
  3140. }];
  3141. for (_0x4f3eec = 0; _0x4f3eec < _0x3bb61f.SPRITE_LIST.length; _0x4f3eec++) _0x3bb61f.SPRITE[_0x3bb61f.SPRITE_LIST[_0x4f3eec].NAME] = _0x3bb61f.SPRITE_LIST[_0x4f3eec], _0x3bb61f.SPRITE[_0x3bb61f.SPRITE_LIST[_0x4f3eec]['ID']] = _0x3bb61f.SPRITE_LIST[_0x4f3eec];
  3142. _0x3bb61f.STATE = {};
  3143. _0x3bb61f.STATE_LIST = [{
  3144. 'NAME': "IDLE",
  3145. 'ID': 0,
  3146. 'SPRITE': [_0x3bb61f.SPRITE.IDLE0, _0x3bb61f.SPRITE.IDLE1]
  3147. }, {
  3148. 'NAME': "FALL",
  3149. 'ID': 1,
  3150. 'SPRITE': [_0x3bb61f.SPRITE.IDLE1]
  3151. }, {
  3152. 'NAME': "ATTACK",
  3153. 'ID': 2,
  3154. 'SPRITE': [_0x3bb61f.SPRITE.ATTACK]
  3155. }, {
  3156. 'NAME': "BONK",
  3157. 'ID': 81,
  3158. 'SPRITE': []
  3159. }];
  3160. for (_0x4f3eec = 0; _0x4f3eec < _0x3bb61f.STATE_LIST.length; _0x4f3eec++) _0x3bb61f.STATE[_0x3bb61f.STATE_LIST[_0x4f3eec].NAME] = _0x3bb61f.STATE_LIST[_0x4f3eec], _0x3bb61f.STATE[_0x3bb61f.STATE_LIST[_0x4f3eec]['ID']] = _0x3bb61f.STATE_LIST[_0x4f3eec];
  3161. _0x3bb61f.prototype.update = function(_0x48fea4) {
  3162. switch (_0x48fea4) {
  3163. case 1:
  3164. this.bonk();
  3165. break;
  3166. case 160:
  3167. this.enable();
  3168. }
  3169. };
  3170. _0x3bb61f.prototype.step = function() {
  3171. this.disabled ? this.proximity() : (0 < this.disabledTimer && this.disabledTimer--, this.state === _0x3bb61f.STATE.BONK ? this.bonkTimer++ > _0x3bb61f.BONK_TIME || 0 > this.pos['y'] + this.dim['y'] ? this.destroy() : (this.pos = _0x4628a4.add(this.pos, _0x4628a4.make(this.moveSpeed, this.fallSpeed)), this.moveSpeed *= _0x3bb61f.BONK_DECEL, this.fallSpeed = Math.max(this.fallSpeed - _0x3bb61f.FALL_SPEED_ACCEL, -_0x3bb61f.BONK_FALL_SPEED)) : (this.anim++, this.sprite = this.state.SPRITE[parseInt(this.anim / _0x3bb61f.ANIMATION_RATE) % this.state.SPRITE.length], this.face(), this.control(), this.physics(), this.sound(), 0 < this.attackAnimTimer ? (this.setState(_0x3bb61f.STATE.ATTACK), this.attach(), this.attackAnimTimer--) : this.attackTimer++ > _0x3bb61f.ATTACK_DELAY ? this.attack() : this.hammer = void 0, 0x0 > this.pos['y'] && this.destroy()));
  3172. };
  3173. _0x3bb61f.prototype.control = function() {
  3174. this.grounded ? (_0x3bb61f.JUMP_DELAY < this.groundTimer++ && (this.groundTimer = this.jumpTimer = 0), this.pos['x'] > this.loc[0] ? this.reverse = !0 : this.pos['x'] < this.loc[1] && (this.reverse = !1)) : this.jumpTimer > _0x3bb61f.JUMP_LENGTH && (this.jumpTimer = -1);
  3175. this.grounded ? this.setState(_0x3bb61f.STATE.IDLE) : this.setState(_0x3bb61f.STATE.FALL);
  3176. this.moveSpeed = 0.75 * this.moveSpeed + 0.25 * (this.reverse ? -_0x3bb61f.MOVE_SPEED_MAX : _0x3bb61f.MOVE_SPEED_MAX);
  3177. };
  3178. _0x3bb61f.prototype.physics = function() {
  3179. -1 !== this.jumpTimer ? (this.fallSpeed = _0x3bb61f.FALL_SPEED_MAX - this.jumpTimer * _0x3bb61f.JUMP_DECEL, this.jumpTimer++, this.grounded = !1) : (this.grounded && (this.fallSpeed = 0), this.fallSpeed = Math.max(this.fallSpeed - _0x3bb61f.FALL_SPEED_ACCEL, -_0x3bb61f.FALL_SPEED_MAX));
  3180. var _0x4a9aa3 = _0x4628a4.add(this.pos, _0x4628a4.make(this.moveSpeed, 0)),
  3181. _0x5d9757 = _0x4628a4.add(this.pos, _0x4628a4.make(this.moveSpeed, this.fallSpeed)),
  3182. _0x5159c = _0x4628a4.make(0 <= this.moveSpeed ? this.pos['x'] : this.pos['x'] + this.moveSpeed, 0 >= this.fallSpeed ? this.pos['y'] : this.pos['y'] + this.fallSpeed),
  3183. _0x3ca1c6 = _0x4628a4.make(this.dim['y'] + Math.abs(this.moveSpeed), this.dim['y'] + Math.abs(this.fallSpeed)),
  3184. _0x5159c = this.game.world.getZone(this.level, this.zone).getTiles(_0x5159c, _0x3ca1c6),
  3185. _0x3ca1c6 = _0x4628a4.make(1, 0x1);
  3186. this.grounded = !1;
  3187. for (var _0x12f7cd = 0; _0x12f7cd < _0x5159c.length; _0x12f7cd++) {
  3188. var _0x360fce = _0x5159c[_0x12f7cd];
  3189. _0x360fce.definition.COLLIDE && _0x4c4bae.intersection(_0x360fce.pos, _0x3ca1c6, _0x4a9aa3, this.dim) && (this.pos['x'] + this.dim['x'] <= _0x360fce.pos['x'] && _0x4a9aa3['x'] + this.dim['x'] > _0x360fce.pos['x'] ? (_0x4a9aa3['x'] = _0x360fce.pos['x'] - this.dim['x'], _0x5d9757['x'] = _0x4a9aa3['x'], this.moveSpeed = 0) : this.pos['x'] >= _0x360fce.pos['x'] + _0x3ca1c6['x'] && _0x4a9aa3['x'] < _0x360fce.pos['x'] + _0x3ca1c6['x'] && (_0x4a9aa3['x'] = _0x360fce.pos['x'] + _0x3ca1c6['x'], _0x5d9757['x'] = _0x4a9aa3['x'], this.moveSpeed = 0));
  3190. }
  3191. for (_0x12f7cd = 0; _0x12f7cd < _0x5159c.length; _0x12f7cd++) _0x360fce = _0x5159c[_0x12f7cd], _0x360fce.definition.COLLIDE && _0x4c4bae.intersection(_0x360fce.pos, _0x3ca1c6, _0x5d9757, this.dim) && (this.pos['y'] >= _0x360fce.pos['y'] + _0x3ca1c6['y'] && _0x5d9757['y'] < _0x360fce.pos['y'] + _0x3ca1c6['y'] ? (_0x5d9757['y'] = _0x360fce.pos['y'] + _0x3ca1c6['y'], this.fallSpeed = 0, this.grounded = !0) : this.pos['y'] + this.dim['y'] <= _0x360fce.pos['y'] && _0x5d9757['y'] + this.dim['y'] > _0x360fce.pos['y'] && (_0x5d9757['y'] = _0x360fce.pos['y'] - this.dim['y'], this.jumpTimer = -1, this.fallSpeed = 0));
  3192. this.pos = _0x4628a4.make(_0x4a9aa3['x'], _0x5d9757['y']);
  3193. };
  3194. _0x3bb61f.prototype.proximity = function() {
  3195. var _0x170ea4 = this.game.getPlayer();
  3196. _0x170ea4 && !_0x170ea4.dead && _0x170ea4.level === this.level && _0x170ea4.zone === this.zone && !this.proxHit && _0x4628a4.distance(_0x170ea4.pos, this.pos) < _0x3bb61f.ENABLE_DIST && (this.game.out.push(_0x217d86.encode(this.level, this.zone, this.oid, 160)), this.proxHit = !0);
  3197. };
  3198. _0x3bb61f.prototype.face = function() {
  3199. for (var _0xa274d0, _0x18aa06 = 0; _0x18aa06 < this.game.objects.length; _0x18aa06++) {
  3200. var _0x1aefad = this.game.objects[_0x18aa06];
  3201. _0x1aefad instanceof _0x307949 && _0x1aefad.level === this.level && _0x1aefad.zone === this.zone && _0x1aefad.isTangible() && (!_0xa274d0 || Math.abs(_0xa274d0) > _0x4628a4.distance(_0x1aefad.pos, this.pos)) && (_0xa274d0 = _0x1aefad.pos['x'] - this.pos['x']);
  3202. }
  3203. this.dir = _0xa274d0 ? 0 > _0xa274d0 : !0;
  3204. };
  3205. _0x3bb61f.prototype.sound = _0x2b132.prototype.sound;
  3206. _0x3bb61f.prototype.enable = function() {
  3207. this.disabled = !1;
  3208. this.disabledTimer = _0x3bb61f.ENABLE_FADE_TIME;
  3209. };
  3210. _0x3bb61f.prototype.disable = function() {
  3211. this.disabled = !0;
  3212. };
  3213. _0x3bb61f.prototype.attack = function() {
  3214. this.attackAnimTimer = _0x3bb61f.ATTACK_ANIM_LENGTH;
  3215. this.attackTimer = 0;
  3216. this.hammer = this.game.createObject(_0xde7ae5['ID'], this.level, this.zone, _0x4628a4.add(this.pos, _0x3bb61f.PROJ_OFFSET), [this]);
  3217. ++this.double > _0x3bb61f.DOUBLE_RATE && (this.double = 0, this.attackTimer = _0x3bb61f.ATTACK_DELAY);
  3218. };
  3219. _0x3bb61f.prototype.attach = function() {
  3220. this.hammer && (this.hammer.pos = _0x4628a4.add(this.pos, _0x3bb61f.PROJ_OFFSET), this.hammer.dir = !this.dir);
  3221. };
  3222. _0x3bb61f.prototype.playerCollide = function(_0x4b22d6) {
  3223. this.dead || this.garbage || _0x4b22d6.damage(this);
  3224. };
  3225. _0x3bb61f.prototype.playerStomp = function(_0x529b7f) {
  3226. this.dead || this.garbage || (this.bonk(), _0x529b7f.bounce(), this.game.out.push(_0x217d86.encode(this.level, this.zone, this.oid, 1)));
  3227. };
  3228. _0x3bb61f.prototype.playerBump = _0x3bb61f.prototype.playerCollide;
  3229. _0x3bb61f.prototype.damage = function(_0x33a936) {
  3230. this.dead || (this.bonk(), _0x217d86.encode(this.level, this.zone, this.oid, 1));
  3231. };
  3232. _0x3bb61f.prototype.bonk = function() {
  3233. this.dead || (this.setState(_0x3bb61f.STATE.BONK), this.moveSpeed = _0x3bb61f.BONK_IMP['x'], this.fallSpeed = _0x3bb61f.BONK_IMP['y'], this.dead = !0, this.play("sfx/kick.wav", 1, 0.04));
  3234. };
  3235. _0x3bb61f.prototype.kill = function() {};
  3236. _0x3bb61f.prototype.isTangible = _0x2b132.prototype.isTangible;
  3237. _0x3bb61f.prototype.destroy = _0x2b132.prototype.destroy;
  3238. _0x3bb61f.prototype.setState = function(_0x189deb) {
  3239. _0x189deb !== this.state && (this.state = _0x189deb, 0 < _0x189deb.SPRITE.length && (this.sprite = _0x189deb.SPRITE[0]), this.anim = 0);
  3240. };
  3241. _0x3bb61f.prototype.draw = function(_0x19b1e0) {
  3242. if (!this.disabled) {
  3243. var _0x3500e3;
  3244. _0x3500e3 = this.state === _0x3bb61f.STATE.BONK ? 3 : 0x0 < this.disabledTimer ? 160 + parseInt(32 * (1 - this.disabledTimer / _0x3bb61f.ENABLE_FADE_TIME)) : 0;
  3245. if (this.sprite.INDEX instanceof Array)
  3246. for (var _0x5c4c4c = this.sprite.INDEX, _0x435b7f = 0; _0x435b7f < _0x5c4c4c.length; _0x435b7f++)
  3247. for (var _0x217037 = 0; _0x217037 < _0x5c4c4c[_0x435b7f].length; _0x217037++) _0x19b1e0.push({
  3248. 'pos': _0x4628a4.add(this.pos, _0x4628a4.make(_0x217037, _0x435b7f)),
  3249. 'reverse': !this.dir,
  3250. 'index': _0x5c4c4c[3 !== _0x3500e3 ? _0x435b7f : _0x5c4c4c.length - 1 - _0x435b7f][_0x217037],
  3251. 'mode': _0x3500e3
  3252. });
  3253. else _0x19b1e0.push({
  3254. 'pos': this.pos,
  3255. 'reverse': !this.dir,
  3256. 'index': this.sprite.INDEX,
  3257. 'mode': _0x3500e3
  3258. });
  3259. }
  3260. };
  3261. _0x3bb61f.prototype.play = _0x2b132.prototype.play;
  3262. _0x2b132.REGISTER_OBJECT(_0x3bb61f);
  3263. "use strict";
  3264. function _0x47b80a(_0x3a5600, _0x548881, _0x396c7c, _0x42a8cb, _0x16ba14) {
  3265. _0x2b132.call(this, _0x3a5600, _0x548881, _0x396c7c, _0x42a8cb);
  3266. this.oid = _0x16ba14;
  3267. this.state = _0x47b80a.STATE.RUN;
  3268. this.sprite = this.state.SPRITE[0];
  3269. this.anim = 0;
  3270. this.health = _0x47b80a.HEALTH;
  3271. this.bonkTimer = 0;
  3272. this.dim = _0x4628a4.make(2, 0x2);
  3273. this.fallSpeed = this.moveSpeed = 0;
  3274. this.grounded = !1;
  3275. this.loc = [this.pos['x'], this.pos['x'] - _0x47b80a.MOVE_AREA];
  3276. this.groundTimer = this.attackAnimTimer = this.attackTimer = 0;
  3277. this.jumpTimer = -1;
  3278. this.reverse = !1;
  3279. this.dir = !0;
  3280. }
  3281. _0x47b80a.ASYNC = !0;
  3282. _0x47b80a['ID'] = 25;
  3283. _0x47b80a.NAME = "BOWSER";
  3284. _0x47b80a.ANIMATION_RATE = 5;
  3285. _0x47b80a.HEALTH = 5;
  3286. _0x47b80a.BONK_TIME = 90;
  3287. _0x47b80a.BONK_IMP = _0x4628a4.make(0.25, 0.4);
  3288. _0x47b80a.BONK_DECEL = 0.925;
  3289. _0x47b80a.BONK_FALL_SPEED = 0.5;
  3290. _0x47b80a.MOVE_SPEED_MAX = 0.095;
  3291. _0x47b80a.JUMP_DELAY = 45;
  3292. _0x47b80a.MOVE_AREA = 5;
  3293. _0x47b80a.JUMP_LENGTH = 6;
  3294. _0x47b80a.JUMP_DECEL = 0.009;
  3295. _0x47b80a.ATTACK_DELAY = 75;
  3296. _0x47b80a.ATTACK_ANIM_LENGTH = 15;
  3297. _0x47b80a.PROJ_OFFSET = _0x4628a4.make(-0.25, 1.1);
  3298. _0x47b80a.FALL_SPEED_MAX = 0.3;
  3299. _0x47b80a.FALL_SPEED_ACCEL = 0.085;
  3300. _0x47b80a.SPRITE = {};
  3301. _0x47b80a.SPRITE_LIST = [{
  3302. 'NAME': "RUN0",
  3303. 'ID': 0,
  3304. 'INDEX': [
  3305. [196, 0xc5],
  3306. [180, 0xb5]
  3307. ]
  3308. }, {
  3309. 'NAME': "RUN1",
  3310. 'ID': 1,
  3311. 'INDEX': [
  3312. [198, 0xc7],
  3313. [182, 0xb7]
  3314. ]
  3315. }, {
  3316. 'NAME': "ATTACK0",
  3317. 'ID': 2,
  3318. 'INDEX': [
  3319. [192, 0xc1],
  3320. [176, 0xb1]
  3321. ]
  3322. }, {
  3323. 'NAME': "ATTACK1",
  3324. 'ID': 3,
  3325. 'INDEX': [
  3326. [194, 0xc3],
  3327. [178, 0xb3]
  3328. ]
  3329. }];
  3330. for (_0x4f3eec = 0; _0x4f3eec < _0x47b80a.SPRITE_LIST.length; _0x4f3eec++) _0x47b80a.SPRITE[_0x47b80a.SPRITE_LIST[_0x4f3eec].NAME] = _0x47b80a.SPRITE_LIST[_0x4f3eec], _0x47b80a.SPRITE[_0x47b80a.SPRITE_LIST[_0x4f3eec]['ID']] = _0x47b80a.SPRITE_LIST[_0x4f3eec];
  3331. _0x47b80a.STATE = {};
  3332. _0x47b80a.STATE_LIST = [{
  3333. 'NAME': "RUN",
  3334. 'ID': 0,
  3335. 'SPRITE': [_0x47b80a.SPRITE.RUN0, _0x47b80a.SPRITE.RUN1]
  3336. }, {
  3337. 'NAME': "ATTACK",
  3338. 'ID': 1,
  3339. 'SPRITE': [_0x47b80a.SPRITE.ATTACK0, _0x47b80a.SPRITE.ATTACK1]
  3340. }, {
  3341. 'NAME': "BONK",
  3342. 'ID': 81,
  3343. 'SPRITE': []
  3344. }];
  3345. for (_0x4f3eec = 0; _0x4f3eec < _0x47b80a.STATE_LIST.length; _0x4f3eec++) _0x47b80a.STATE[_0x47b80a.STATE_LIST[_0x4f3eec].NAME] = _0x47b80a.STATE_LIST[_0x4f3eec], _0x47b80a.STATE[_0x47b80a.STATE_LIST[_0x4f3eec]['ID']] = _0x47b80a.STATE_LIST[_0x4f3eec];
  3346. _0x47b80a.prototype.update = function(_0x210b64) {};
  3347. _0x47b80a.prototype.step = function() {
  3348. this.state === _0x47b80a.STATE.BONK ? this.bonkTimer++ > _0x47b80a.BONK_TIME || 0 > this.pos['y'] + this.dim['y'] ? this.destroy() : (this.pos = _0x4628a4.add(this.pos, _0x4628a4.make(this.moveSpeed, this.fallSpeed)), this.moveSpeed *= _0x47b80a.BONK_DECEL, this.fallSpeed = Math.max(this.fallSpeed - _0x47b80a.FALL_SPEED_ACCEL, -_0x47b80a.BONK_FALL_SPEED)) : (this.anim++, this.sprite = this.state.SPRITE[parseInt(this.anim / _0x47b80a.ANIMATION_RATE) % this.state.SPRITE.length], this.control(), this.physics(), this.sound(), this.attackTimer++ > _0x47b80a.ATTACK_DELAY && this.attack(), 0 < this.attackAnimTimer ? (this.setState(_0x47b80a.STATE.ATTACK), this.attackAnimTimer--) : this.setState(_0x47b80a.STATE.RUN), 0 > this.pos['y'] && this.destroy());
  3349. };
  3350. _0x47b80a.prototype.control = function() {
  3351. this.grounded ? (_0x47b80a.JUMP_DELAY < this.groundTimer++ && (this.groundTimer = this.jumpTimer = 0), this.pos['x'] > this.loc[0] ? this.reverse = !0 : this.pos['x'] < this.loc[1] && (this.reverse = !1)) : this.jumpTimer > _0x47b80a.JUMP_LENGTH && (this.jumpTimer = -1);
  3352. this.moveSpeed = 0.75 * this.moveSpeed + 0.25 * (this.reverse ? -_0x47b80a.MOVE_SPEED_MAX : _0x47b80a.MOVE_SPEED_MAX);
  3353. };
  3354. _0x47b80a.prototype.physics = function() {
  3355. -1 !== this.jumpTimer ? (this.fallSpeed = _0x47b80a.FALL_SPEED_MAX - this.jumpTimer * _0x47b80a.JUMP_DECEL, this.jumpTimer++, this.grounded = !1) : (this.grounded && (this.fallSpeed = 0), this.fallSpeed = Math.max(this.fallSpeed - _0x47b80a.FALL_SPEED_ACCEL, -_0x47b80a.FALL_SPEED_MAX));
  3356. var _0x17ff5e = _0x4628a4.add(this.pos, _0x4628a4.make(this.moveSpeed, 0)),
  3357. _0x6e760e = _0x4628a4.add(this.pos, _0x4628a4.make(this.moveSpeed, this.fallSpeed)),
  3358. _0x426509 = _0x4628a4.make(0 <= this.moveSpeed ? this.pos['x'] : this.pos['x'] + this.moveSpeed, 0 >= this.fallSpeed ? this.pos['y'] : this.pos['y'] + this.fallSpeed),
  3359. _0x569085 = _0x4628a4.make(this.dim['y'] + Math.abs(this.moveSpeed), this.dim['y'] + Math.abs(this.fallSpeed)),
  3360. _0x426509 = this.game.world.getZone(this.level, this.zone).getTiles(_0x426509, _0x569085),
  3361. _0x569085 = _0x4628a4.make(1, 0x1);
  3362. this.grounded = !1;
  3363. for (var _0x3182d5 = 0; _0x3182d5 < _0x426509.length; _0x3182d5++) {
  3364. var _0x2d8950 = _0x426509[_0x3182d5];
  3365. _0x2d8950.definition.COLLIDE && _0x4c4bae.intersection(_0x2d8950.pos, _0x569085, _0x17ff5e, this.dim) && (this.pos['x'] + this.dim['x'] <= _0x2d8950.pos['x'] && _0x17ff5e['x'] + this.dim['x'] > _0x2d8950.pos['x'] ? (_0x17ff5e['x'] = _0x2d8950.pos['x'] - this.dim['x'], _0x6e760e['x'] = _0x17ff5e['x'], this.moveSpeed = 0) : this.pos['x'] >= _0x2d8950.pos['x'] + _0x569085['x'] && _0x17ff5e['x'] < _0x2d8950.pos['x'] + _0x569085['x'] && (_0x17ff5e['x'] = _0x2d8950.pos['x'] + _0x569085['x'], _0x6e760e['x'] = _0x17ff5e['x'], this.moveSpeed = 0));
  3366. }
  3367. for (_0x3182d5 = 0; _0x3182d5 < _0x426509.length; _0x3182d5++) _0x2d8950 = _0x426509[_0x3182d5], _0x2d8950.definition.COLLIDE && _0x4c4bae.intersection(_0x2d8950.pos, _0x569085, _0x6e760e, this.dim) && (this.pos['y'] >= _0x2d8950.pos['y'] + _0x569085['y'] && _0x6e760e['y'] < _0x2d8950.pos['y'] + _0x569085['y'] ? (_0x6e760e['y'] = _0x2d8950.pos['y'] + _0x569085['y'], this.fallSpeed = 0, this.grounded = !0) : this.pos['y'] + this.dim['y'] <= _0x2d8950.pos['y'] && _0x6e760e['y'] + this.dim['y'] > _0x2d8950.pos['y'] && (_0x6e760e['y'] = _0x2d8950.pos['y'] - this.dim['y'], this.jumpTimer = -1, this.fallSpeed = 0));
  3368. this.pos = _0x4628a4.make(_0x17ff5e['x'], _0x6e760e['y']);
  3369. };
  3370. _0x47b80a.prototype.sound = _0x2b132.prototype.sound;
  3371. _0x47b80a.prototype.attack = function() {
  3372. this.attackAnimTimer = _0x47b80a.ATTACK_ANIM_LENGTH;
  3373. this.attackTimer = 0;
  3374. this.game.createObject(_0x494911['ID'], this.level, this.zone, _0x4628a4.add(this.pos, _0x47b80a.PROJ_OFFSET), []);
  3375. this.play("sfx/breath.wav", 1.5, 0.04);
  3376. };
  3377. _0x47b80a.prototype.playerCollide = function(_0x301ce0) {
  3378. this.dead || this.garbage || _0x301ce0.damage(this);
  3379. };
  3380. _0x47b80a.prototype.playerStomp = _0x47b80a.prototype.playerCollide;
  3381. _0x47b80a.prototype.playerBump = _0x47b80a.prototype.playerCollide;
  3382. _0x47b80a.prototype.damage = function(_0x1c821f) {
  3383. this.dead || 0 >= --this.health && this.bonk();
  3384. };
  3385. _0x47b80a.prototype.bonk = function() {
  3386. this.dead || (this.setState(_0x47b80a.STATE.BONK), this.moveSpeed = _0x47b80a.BONK_IMP['x'], this.fallSpeed = _0x47b80a.BONK_IMP['y'], this.dead = !0, this.play("sfx/kick.wav", 1, 0.04));
  3387. };
  3388. _0x47b80a.prototype.kill = function() {};
  3389. _0x47b80a.prototype.isTangible = _0x2b132.prototype.isTangible;
  3390. _0x47b80a.prototype.destroy = _0x2b132.prototype.destroy;
  3391. _0x47b80a.prototype.setState = function(_0x3c9ce0) {
  3392. _0x3c9ce0 !== this.state && (this.state = _0x3c9ce0, 0 < _0x3c9ce0.SPRITE.length && (this.sprite = _0x3c9ce0.SPRITE[0]), this.anim = 0);
  3393. };
  3394. _0x47b80a.prototype.draw = function(_0x344414) {
  3395. var _0x1d42d7;
  3396. _0x1d42d7 = this.state === _0x47b80a.STATE.BONK ? 3 : 0x0;
  3397. if (this.sprite.INDEX instanceof Array)
  3398. for (var _0xe1f0ab = this.sprite.INDEX, _0x417a90 = 0; _0x417a90 < _0xe1f0ab.length; _0x417a90++)
  3399. for (var _0x353e33 = 0; _0x353e33 < _0xe1f0ab[_0x417a90].length; _0x353e33++) _0x344414.push({
  3400. 'pos': _0x4628a4.add(this.pos, _0x4628a4.make(_0x353e33, _0x417a90)),
  3401. 'reverse': !this.dir,
  3402. 'index': _0xe1f0ab[_0x1d42d7 ? _0xe1f0ab.length - 1 - _0x417a90 : _0x417a90][_0x353e33],
  3403. 'mode': _0x1d42d7
  3404. });
  3405. else _0x344414.push({
  3406. 'pos': this.pos,
  3407. 'reverse': !this.dir,
  3408. 'index': this.sprite.INDEX,
  3409. 'mode': _0x1d42d7
  3410. });
  3411. };
  3412. _0x47b80a.prototype.play = _0x2b132.prototype.play;
  3413. _0x2b132.REGISTER_OBJECT(_0x47b80a);
  3414. "use strict";
  3415. function _0x23afdb(_0x385f59, _0x310cfa, _0x31960e, _0x10537d, _0x57fe89, _0x3d4d35, _0x25fa69, _0x518de2, _0x15d767, _0x5f6838, _0x2a4bd0, _0x2dffee) {
  3416. _0x2b132.call(this, _0x385f59, _0x310cfa, _0x31960e, _0x10537d);
  3417. this.oid = _0x57fe89;
  3418. this.setState(_0x23afdb.STATE.IDLE);
  3419. this.loc = 0 === parseInt(_0x2dffee) ? [_0x10537d, _0x4628a4.add(_0x10537d, _0x4628a4.make(parseInt(_0x25fa69), parseInt(_0x518de2)))] : [_0x4628a4.add(_0x10537d, _0x4628a4.make(parseInt(_0x25fa69), parseInt(_0x518de2))), _0x10537d];
  3420. this.anim = 0;
  3421. this.dim = _0x4628a4.make(parseInt(_0x3d4d35), 0.5);
  3422. this.speed = parseFloat(_0x15d767);
  3423. this.riders = [];
  3424. this.dir = !1;
  3425. this.loop = 0 === parseInt(_0x5f6838) ? !1 : !0;
  3426. this.delay = parseInt(_0x2a4bd0);
  3427. }
  3428. _0x23afdb.ASYNC = !0;
  3429. _0x23afdb['ID'] = 145;
  3430. _0x23afdb.NAME = "PLATFORM";
  3431. _0x23afdb.ANIMATION_RATE = 3;
  3432. _0x23afdb.SPRITE = {};
  3433. _0x23afdb.SPRITE_LIST = [{
  3434. 'NAME': "IDLE",
  3435. 'ID': 0,
  3436. 'INDEX': 160
  3437. }];
  3438. for (_0x4f3eec = 0; _0x4f3eec < _0x23afdb.SPRITE_LIST.length; _0x4f3eec++) _0x23afdb.SPRITE[_0x23afdb.SPRITE_LIST[_0x4f3eec].NAME] = _0x23afdb.SPRITE_LIST[_0x4f3eec], _0x23afdb.SPRITE[_0x23afdb.SPRITE_LIST[_0x4f3eec]['ID']] = _0x23afdb.SPRITE_LIST[_0x4f3eec];
  3439. _0x23afdb.STATE = {};
  3440. _0x23afdb.STATE_LIST = [{
  3441. 'NAME': "IDLE",
  3442. 'ID': 0,
  3443. 'SPRITE': [_0x23afdb.SPRITE.IDLE]
  3444. }];
  3445. for (_0x4f3eec = 0; _0x4f3eec < _0x23afdb.STATE_LIST.length; _0x4f3eec++) _0x23afdb.STATE[_0x23afdb.STATE_LIST[_0x4f3eec].NAME] = _0x23afdb.STATE_LIST[_0x4f3eec], _0x23afdb.STATE[_0x23afdb.STATE_LIST[_0x4f3eec]['ID']] = _0x23afdb.STATE_LIST[_0x4f3eec];
  3446. _0x23afdb.prototype.update = function(_0x4899ac) {};
  3447. _0x23afdb.prototype.step = function() {
  3448. 0 < this.delay-- || (this.anim++, this.sprite = this.state.SPRITE[parseInt(this.anim / _0x23afdb.ANIMATION_RATE) % this.state.SPRITE.length], this.physics());
  3449. };
  3450. _0x23afdb.prototype.physics = function() {
  3451. var _0x1c3490 = _0x4628a4.normalize(_0x4628a4.subtract(this.loc[this.dir ? 0 : 0x1], this.pos)),
  3452. _0xea623 = _0x4628a4.distance(this.pos, this.loc[this.dir ? 0 : 0x1]);
  3453. if (_0xea623 < this.speed)
  3454. if (this.loop) this.dir = !this.dir;
  3455. else {
  3456. this.pos = this.loc[0];
  3457. this.riders = [];
  3458. return;
  3459. } _0x1c3490 = _0x4628a4.scale(_0x1c3490, Math.min(this.speed, _0xea623));
  3460. this.pos = _0x4628a4.add(this.pos, _0x1c3490);
  3461. for (_0xea623 = 0; _0xea623 < this.riders.length; _0xea623++) {
  3462. var _0x45f051 = this.riders[0];
  3463. _0x45f051.pos = _0x4628a4.add(_0x45f051.pos, _0x1c3490);
  3464. }
  3465. this.riders = [];
  3466. };
  3467. _0x23afdb.prototype.riding = function(_0x31e465) {
  3468. this.riders.push(_0x31e465);
  3469. };
  3470. _0x23afdb.prototype.kill = function() {};
  3471. _0x23afdb.prototype.destroy = _0x2b132.prototype.destroy;
  3472. _0x23afdb.prototype.isTangible = _0x2b132.prototype.isTangible;
  3473. _0x23afdb.prototype.setState = function(_0xad35b3) {
  3474. _0xad35b3 !== this.state && (this.state = _0xad35b3, this.sprite = _0xad35b3.SPRITE[0], this.anim = 0);
  3475. };
  3476. _0x23afdb.prototype.draw = function(_0x4280b5) {
  3477. if (!(0 < this.delay))
  3478. for (var _0x18e3a8 = 0; _0x18e3a8 < this.dim['x']; _0x18e3a8++) _0x4280b5.push({
  3479. 'pos': _0x4628a4.add(this.pos, _0x4628a4.make(_0x18e3a8, 0)),
  3480. 'reverse': this.reverse,
  3481. 'index': this.sprite.INDEX,
  3482. 'mode': 0
  3483. });
  3484. };
  3485. _0x2b132.REGISTER_OBJECT(_0x23afdb);
  3486. "use strict";
  3487. function _0x4cfe85(_0x3f686b, _0x1fb908, _0x3242ca, _0x235044, _0x431eaa, _0x577e71, _0x259052, _0x19be4f, _0x4c4b7c) {
  3488. _0x2b132.call(this, _0x3f686b, _0x1fb908, _0x3242ca, _0x235044);
  3489. this.oid = _0x431eaa;
  3490. this.setState(_0x4cfe85.STATE.IDLE);
  3491. this.loc = [_0x235044, _0x4628a4.add(_0x235044, _0x4628a4.make(parseInt(_0x259052), parseInt(_0x19be4f)))];
  3492. this.anim = 0;
  3493. this.dim = _0x4628a4.make(parseInt(_0x577e71), 0.5);
  3494. this.speed = parseFloat(_0x4c4b7c);
  3495. this.riders = [];
  3496. this.dir = this['go'] = !1;
  3497. }
  3498. _0x4cfe85.ASYNC = !1;
  3499. _0x4cfe85['ID'] = 146;
  3500. _0x4cfe85.NAME = "BUS PLATFORM";
  3501. _0x4cfe85.ANIMATION_RATE = 3;
  3502. _0x4cfe85.SPRITE = {};
  3503. _0x4cfe85.SPRITE_LIST = [{
  3504. 'NAME': "IDLE",
  3505. 'ID': 0,
  3506. 'INDEX': 160
  3507. }];
  3508. for (_0x4f3eec = 0; _0x4f3eec < _0x4cfe85.SPRITE_LIST.length; _0x4f3eec++) _0x4cfe85.SPRITE[_0x4cfe85.SPRITE_LIST[_0x4f3eec].NAME] = _0x4cfe85.SPRITE_LIST[_0x4f3eec], _0x4cfe85.SPRITE[_0x4cfe85.SPRITE_LIST[_0x4f3eec]['ID']] = _0x4cfe85.SPRITE_LIST[_0x4f3eec];
  3509. _0x4cfe85.STATE = {};
  3510. _0x4cfe85.STATE_LIST = [{
  3511. 'NAME': "IDLE",
  3512. 'ID': 0,
  3513. 'SPRITE': [_0x4cfe85.SPRITE.IDLE]
  3514. }];
  3515. for (_0x4f3eec = 0; _0x4f3eec < _0x4cfe85.STATE_LIST.length; _0x4f3eec++) _0x4cfe85.STATE[_0x4cfe85.STATE_LIST[_0x4f3eec].NAME] = _0x4cfe85.STATE_LIST[_0x4f3eec], _0x4cfe85.STATE[_0x4cfe85.STATE_LIST[_0x4f3eec]['ID']] = _0x4cfe85.STATE_LIST[_0x4f3eec];
  3516. _0x4cfe85.prototype.update = function(_0x560f8a) {
  3517. switch (_0x560f8a) {
  3518. case 161:
  3519. this.start();
  3520. }
  3521. };
  3522. _0x4cfe85.prototype.step = function() {
  3523. this.anim++;
  3524. this.sprite = this.state.SPRITE[parseInt(this.anim / _0x4cfe85.ANIMATION_RATE) % this.state.SPRITE.length];
  3525. this.physics();
  3526. };
  3527. _0x4cfe85.prototype.physics = function() {
  3528. if (this['go']) {
  3529. var _0x2dda0e = _0x4628a4.normalize(_0x4628a4.subtract(this.loc[this.dir ? 0 : 0x1], this.pos)),
  3530. _0xdc59b = _0x4628a4.distance(this.pos, this.loc[this.dir ? 0 : 0x1]),
  3531. _0x2dda0e = _0x4628a4.scale(_0x2dda0e, Math.min(this.speed, _0xdc59b));
  3532. this.pos = _0x4628a4.add(this.pos, _0x2dda0e);
  3533. for (_0xdc59b = 0; _0xdc59b < this.riders.length; _0xdc59b++) {
  3534. var _0x2d9a71 = this.riders[0];
  3535. _0x2d9a71.pos = _0x4628a4.add(_0x2d9a71.pos, _0x2dda0e);
  3536. }
  3537. }
  3538. this.riders = [];
  3539. };
  3540. _0x4cfe85.prototype.start = function() {
  3541. this['go'] = !0;
  3542. };
  3543. _0x4cfe85.prototype.riding = function(_0x401e16) {
  3544. _0x401e16.pid !== this.game.pid || this['go'] || this.game.out.push(_0x217d86.encode(this.level, this.zone, this.oid, 161));
  3545. this.riders.push(_0x401e16);
  3546. };
  3547. _0x4cfe85.prototype.kill = function() {};
  3548. _0x4cfe85.prototype.isTangible = _0x2b132.prototype.isTangible;
  3549. _0x4cfe85.prototype.destroy = _0x2b132.prototype.destroy;
  3550. _0x4cfe85.prototype.setState = function(_0x55d970) {
  3551. _0x55d970 !== this.state && (this.state = _0x55d970, this.sprite = _0x55d970.SPRITE[0], this.anim = 0);
  3552. };
  3553. _0x4cfe85.prototype.draw = function(_0x11da07) {
  3554. if (!(0 < this.delay))
  3555. for (var _0x1a4034 = 0; _0x1a4034 < this.dim['x']; _0x1a4034++) _0x11da07.push({
  3556. 'pos': _0x4628a4.add(this.pos, _0x4628a4.make(_0x1a4034, 0)),
  3557. 'reverse': this.reverse,
  3558. 'index': this.sprite.INDEX,
  3559. 'mode': 0
  3560. });
  3561. };
  3562. _0x2b132.REGISTER_OBJECT(_0x4cfe85);
  3563. "use strict";
  3564. function _0x46ee61(_0x43cafb, _0x1b4d7d, _0x5303ae, _0x4a0edf, _0x5a783c) {
  3565. _0x2b132.call(this, _0x43cafb, _0x1b4d7d, _0x5303ae, _0x4a0edf);
  3566. this.oid = _0x5a783c;
  3567. this.setState(_0x46ee61.STATE.EXTEND);
  3568. this.anim = 0;
  3569. this.pos = _0x4628a4.add(this.pos, _0x46ee61.SOFFSET);
  3570. this.dim = _0x4628a4.make(0.8, 2);
  3571. }
  3572. _0x46ee61.ASYNC = !0;
  3573. _0x46ee61['ID'] = 149;
  3574. _0x46ee61.NAME = "SPRING";
  3575. _0x46ee61.ANIMATION_RATE = 3;
  3576. _0x46ee61.SOFFSET = _0x4628a4.make(0.1, 0);
  3577. _0x46ee61.THRESHOLD = [1, 0.5];
  3578. _0x46ee61.POWER = 0.45;
  3579. _0x46ee61.SPRITE = {};
  3580. _0x46ee61.SPRITE_LIST = [{
  3581. 'NAME': "STAGE0",
  3582. 'ID': 0,
  3583. 'INDEX': [
  3584. [161],
  3585. [145]
  3586. ]
  3587. }, {
  3588. 'NAME': "STAGE1",
  3589. 'ID': 1,
  3590. 'INDEX': 162
  3591. }, {
  3592. 'NAME': "STAGE2",
  3593. 'ID': 2,
  3594. 'INDEX': 163
  3595. }];
  3596. for (_0x4f3eec = 0; _0x4f3eec < _0x46ee61.SPRITE_LIST.length; _0x4f3eec++) _0x46ee61.SPRITE[_0x46ee61.SPRITE_LIST[_0x4f3eec].NAME] = _0x46ee61.SPRITE_LIST[_0x4f3eec], _0x46ee61.SPRITE[_0x46ee61.SPRITE_LIST[_0x4f3eec]['ID']] = _0x46ee61.SPRITE_LIST[_0x4f3eec];
  3597. _0x46ee61.STATE = {};
  3598. _0x46ee61.STATE_LIST = [{
  3599. 'NAME': "EXTEND",
  3600. 'ID': 0,
  3601. 'SPRITE': [_0x46ee61.SPRITE.STAGE0]
  3602. }, {
  3603. 'NAME': "HALF",
  3604. 'ID': 1,
  3605. 'SPRITE': [_0x46ee61.SPRITE.STAGE1]
  3606. }, {
  3607. 'NAME': "COMPRESS",
  3608. 'ID': 2,
  3609. 'SPRITE': [_0x46ee61.SPRITE.STAGE2]
  3610. }];
  3611. for (_0x4f3eec = 0; _0x4f3eec < _0x46ee61.STATE_LIST.length; _0x4f3eec++) _0x46ee61.STATE[_0x46ee61.STATE_LIST[_0x4f3eec].NAME] = _0x46ee61.STATE_LIST[_0x4f3eec], _0x46ee61.STATE[_0x46ee61.STATE_LIST[_0x4f3eec]['ID']] = _0x46ee61.STATE_LIST[_0x4f3eec];
  3612. _0x46ee61.prototype.update = function(_0x2026a4) {};
  3613. _0x46ee61.prototype.step = function() {
  3614. this.anim++;
  3615. this.sprite = this.state.SPRITE[parseInt(this.anim / _0x46ee61.ANIMATION_RATE) % this.state.SPRITE.length];
  3616. this.interaction();
  3617. };
  3618. _0x46ee61.prototype.interaction = function() {
  3619. var _0xa24419 = this.game.getPlayer();
  3620. if (_0xa24419 && _0xa24419.level === this.level && _0xa24419.zone === this.zone && _0xa24419.isTangible() && _0x4c4bae.intersection(this.pos, this.dim, _0xa24419.pos, _0xa24419.dim)) {
  3621. var _0x353727 = Math.pow(1 - 0.5 * Math.min(Math.max(0, _0xa24419.pos['y'] - this.pos['y']), 2), 2);
  3622. _0xa24419.fallSpeed >= 0.75 * _0x307949.FALL_SPEED_MAX && _0xa24419.btnA && (_0xa24419.jumping = 0, _0xa24419.isSpring = !0);
  3623. _0xa24419.fallSpeed += _0x353727 * _0x46ee61.POWER;
  3624. _0xa24419.grounded = !1;
  3625. }
  3626. _0xa24419 = 2;
  3627. for (_0x353727 = 0; _0x353727 < this.game.objects.length; _0x353727++) {
  3628. var _0x47477a = this.game.objects[_0x353727];
  3629. _0x47477a instanceof _0x307949 && _0x47477a.level === this.level && _0x47477a.zone === this.zone && _0x47477a.isTangible() && _0x4c4bae.intersection(this.pos, this.dim, _0x47477a.pos, _0x47477a.dim) && (_0x47477a = Math.min(Math.max(0, _0x47477a.pos['y'] - this.pos['y']), 2), _0x47477a < _0xa24419 && (_0xa24419 = _0x47477a));
  3630. }
  3631. _0xa24419 < _0x46ee61.THRESHOLD[1] ? this.setState(_0x46ee61.STATE.COMPRESS) : _0xa24419 < _0x46ee61.THRESHOLD[0] ? this.setState(_0x46ee61.STATE.HALF) : this.setState(_0x46ee61.STATE.EXTEND);
  3632. };
  3633. _0x46ee61.prototype.kill = function() {};
  3634. _0x46ee61.prototype.destroy = _0x2b132.prototype.destroy;
  3635. _0x46ee61.prototype.isTangible = _0x2b132.prototype.isTangible;
  3636. _0x46ee61.prototype.setState = function(_0x2251bb) {
  3637. _0x2251bb !== this.state && (this.state = _0x2251bb, this.sprite = _0x2251bb.SPRITE[0], this.anim = 0);
  3638. };
  3639. _0x46ee61.prototype.draw = function(_0x5eb5a4) {
  3640. if (this.sprite.INDEX instanceof Array)
  3641. for (var _0x27f27e = this.sprite.INDEX, _0xbdb523 = 0; _0xbdb523 < _0x27f27e.length; _0xbdb523++)
  3642. for (var _0x1edf09 = 0; _0x1edf09 < _0x27f27e[_0xbdb523].length; _0x1edf09++) _0x5eb5a4.push({
  3643. 'pos': _0x4628a4.subtract(_0x4628a4.add(this.pos, _0x4628a4.make(_0x1edf09, _0xbdb523)), _0x46ee61.SOFFSET),
  3644. 'reverse': !1,
  3645. 'index': _0x27f27e[_0xbdb523][_0x1edf09]
  3646. });
  3647. else _0x5eb5a4.push({
  3648. 'pos': _0x4628a4.subtract(this.pos, _0x46ee61.SOFFSET),
  3649. 'reverse': !1,
  3650. 'index': this.sprite.INDEX,
  3651. 'mode': 0
  3652. });
  3653. };
  3654. _0x2b132.REGISTER_OBJECT(_0x46ee61);
  3655. "use strict";
  3656. function _0x42a575(_0x276916, _0xcbf248, _0x24ad25, _0x224748, _0x35727a) {
  3657. _0x2b132.call(this, _0x276916, _0xcbf248, _0x24ad25, _0x224748);
  3658. this.oid = _0x35727a;
  3659. this.setState(_0x42a575.STATE.IDLE);
  3660. this.anim = 0;
  3661. }
  3662. _0x42a575.ASYNC = !0;
  3663. _0x42a575['ID'] = 177;
  3664. _0x42a575.NAME = "FLAG";
  3665. _0x42a575.ANIMATION_RATE = 3;
  3666. _0x42a575.OFFSET = _0x4628a4.make(-0.5, 0);
  3667. _0x42a575.SPRITE = {};
  3668. _0x42a575.SPRITE_LIST = [{
  3669. 'NAME': "IDLE",
  3670. 'ID': 0,
  3671. 'INDEX': 144
  3672. }];
  3673. for (_0x4f3eec = 0; _0x4f3eec < _0x42a575.SPRITE_LIST.length; _0x4f3eec++) _0x42a575.SPRITE[_0x42a575.SPRITE_LIST[_0x4f3eec].NAME] = _0x42a575.SPRITE_LIST[_0x4f3eec], _0x42a575.SPRITE[_0x42a575.SPRITE_LIST[_0x4f3eec]['ID']] = _0x42a575.SPRITE_LIST[_0x4f3eec];
  3674. _0x42a575.STATE = {};
  3675. _0x42a575.STATE_LIST = [{
  3676. 'NAME': "IDLE",
  3677. 'ID': 0,
  3678. 'SPRITE': [_0x42a575.SPRITE.IDLE]
  3679. }];
  3680. for (_0x4f3eec = 0; _0x4f3eec < _0x42a575.STATE_LIST.length; _0x4f3eec++) _0x42a575.STATE[_0x42a575.STATE_LIST[_0x4f3eec].NAME] = _0x42a575.STATE_LIST[_0x4f3eec], _0x42a575.STATE[_0x42a575.STATE_LIST[_0x4f3eec]['ID']] = _0x42a575.STATE_LIST[_0x4f3eec];
  3681. _0x42a575.prototype.update = function(_0x10c700) {};
  3682. _0x42a575.prototype.step = function() {
  3683. this.anim++;
  3684. this.sprite = this.state.SPRITE[parseInt(this.anim / _0x42a575.ANIMATION_RATE) % this.state.SPRITE.length];
  3685. };
  3686. _0x42a575.prototype.kill = function() {};
  3687. _0x42a575.prototype.isTangible = _0x2b132.prototype.isTangible;
  3688. _0x42a575.prototype.destroy = _0x2b132.prototype.destroy;
  3689. _0x42a575.prototype.setState = function(_0x34112a) {
  3690. _0x34112a !== this.state && (this.state = _0x34112a, this.sprite = _0x34112a.SPRITE[0], this.anim = 0);
  3691. };
  3692. _0x42a575.prototype.draw = function(_0x262304) {
  3693. _0x262304.push({
  3694. 'pos': _0x4628a4.add(this.pos, _0x42a575.OFFSET),
  3695. 'reverse': !1,
  3696. 'index': this.sprite.INDEX,
  3697. 'mode': 0
  3698. });
  3699. };
  3700. _0x2b132.REGISTER_OBJECT(_0x42a575);
  3701. "use strict";
  3702. function _0x322232(_0x460130, _0x4ad7fb, _0x34adff, _0x274267, _0x58f6c1, _0x1cc747, _0x52430d) {
  3703. _0x2b132.call(this, _0x460130, _0x4ad7fb, _0x34adff, _0x274267);
  3704. this.oid = _0x58f6c1;
  3705. this.state = _0x322232.STATE.IDLE;
  3706. this.sprite = this.state.SPRITE[0];
  3707. this.anim = 1 === parseInt(_0x1cc747) ? 2 * _0x322232.SPIN_RATE : 0;
  3708. this.dim = _0x4628a4.make(0.5, 0.5);
  3709. this.size = isNaN(parseInt(_0x52430d)) ? _0x322232.PARTS : parseInt(_0x52430d);
  3710. }
  3711. _0x322232.ASYNC = !0;
  3712. _0x322232['ID'] = 33;
  3713. _0x322232.NAME = "FIRE TRAP";
  3714. _0x322232.ANIMATION_RATE = 2;
  3715. _0x322232.OFFSET = _0x4628a4.make(0.25, 0.25);
  3716. _0x322232.PARTS = 6;
  3717. _0x322232.SPACING = 0.5;
  3718. _0x322232.SPIN_RATE = 23;
  3719. _0x322232.SPRITE = {};
  3720. _0x322232.SPRITE_LIST = [{
  3721. 'NAME': "IDLE0",
  3722. 'ID': 0,
  3723. 'INDEX': 208
  3724. }, {
  3725. 'NAME': "IDLE1",
  3726. 'ID': 1,
  3727. 'INDEX': 209
  3728. }, {
  3729. 'NAME': "IDLE2",
  3730. 'ID': 2,
  3731. 'INDEX': 210
  3732. }, {
  3733. 'NAME': "IDLE3",
  3734. 'ID': 3,
  3735. 'INDEX': 211
  3736. }];
  3737. for (_0x4f3eec = 0; _0x4f3eec < _0x322232.SPRITE_LIST.length; _0x4f3eec++) _0x322232.SPRITE[_0x322232.SPRITE_LIST[_0x4f3eec].NAME] = _0x322232.SPRITE_LIST[_0x4f3eec], _0x322232.SPRITE[_0x322232.SPRITE_LIST[_0x4f3eec]['ID']] = _0x322232.SPRITE_LIST[_0x4f3eec];
  3738. _0x322232.STATE = {};
  3739. _0x322232.STATE_LIST = [{
  3740. 'NAME': "IDLE",
  3741. 'ID': 0,
  3742. 'SPRITE': [_0x322232.SPRITE.IDLE0, _0x322232.SPRITE.IDLE1, _0x322232.SPRITE.IDLE2, _0x322232.SPRITE.IDLE3]
  3743. }];
  3744. for (_0x4f3eec = 0; _0x4f3eec < _0x322232.STATE_LIST.length; _0x4f3eec++) _0x322232.STATE[_0x322232.STATE_LIST[_0x4f3eec].NAME] = _0x322232.STATE_LIST[_0x4f3eec], _0x322232.STATE[_0x322232.STATE_LIST[_0x4f3eec]['ID']] = _0x322232.STATE_LIST[_0x4f3eec];
  3745. _0x322232.prototype.update = function() {};
  3746. _0x322232.prototype.step = function() {
  3747. this.anim++;
  3748. this.sprite = this.state.SPRITE[parseInt(this.anim / _0x322232.ANIMATION_RATE) % this.state.SPRITE.length];
  3749. this.control();
  3750. this.interaction();
  3751. };
  3752. _0x322232.prototype.control = function() {
  3753. this.rot += _0x322232.SPIN_RATE;
  3754. };
  3755. _0x322232.prototype.interaction = function() {
  3756. var _0xf47674 = _0x4628a4.normalize(_0x4628a4.make(Math.sin(-this.anim / _0x322232.SPIN_RATE), Math.cos(-this.anim / _0x322232.SPIN_RATE))),
  3757. _0x332592 = this.game.getPlayer();
  3758. if (_0x332592 && _0x332592.isTangible() && _0x332592.level === this.level && _0x332592.zone === this.zone)
  3759. for (var _0x2d6075 = 0; _0x2d6075 < this.size; _0x2d6075++) {
  3760. var _0x22c2fb = _0x4628a4.add(_0x4628a4.add(this.pos, _0x322232.OFFSET), _0x4628a4.scale(_0xf47674, _0x322232.SPACING * _0x2d6075));
  3761. _0x4c4bae.intersection(_0x332592.pos, _0x332592.dim, _0x22c2fb, this.dim) && _0x332592.damage(this);
  3762. }
  3763. };
  3764. _0x322232.prototype.playerCollide = function(_0x22255a) {};
  3765. _0x322232.prototype.playerStomp = function(_0x265fcb) {};
  3766. _0x322232.prototype.playerBump = function(_0x5d49e1) {};
  3767. _0x322232.prototype.kill = function() {};
  3768. _0x322232.prototype.isTangible = _0x2b132.prototype.isTangible;
  3769. _0x322232.prototype.destroy = _0x2b132.prototype.destroy;
  3770. _0x322232.prototype.setState = function(_0x133892) {
  3771. _0x133892 !== this.state && (this.state = _0x133892, this.sprite = _0x133892.SPRITE[0], this.anim = 0);
  3772. };
  3773. _0x322232.prototype.draw = function(_0x2273f4) {
  3774. for (var _0x3dc5bf = _0x4628a4.normalize(_0x4628a4.make(Math.sin(-this.anim / _0x322232.SPIN_RATE), Math.cos(-this.anim / _0x322232.SPIN_RATE))), _0x5d8ad2 = 0; _0x5d8ad2 < this.size; _0x5d8ad2++) _0x2273f4.push({
  3775. 'pos': _0x4628a4.add(this.pos, _0x4628a4.scale(_0x3dc5bf, _0x322232.SPACING * _0x5d8ad2)),
  3776. 'reverse': !1,
  3777. 'index': this.sprite.INDEX,
  3778. 'mode': 0
  3779. });
  3780. };
  3781. _0x2b132.REGISTER_OBJECT(_0x322232);
  3782. "use strict";
  3783. function _0x5df470(_0x38be3f, _0x23eece, _0x5eeb36, _0x4fd4e2, _0x3c448a, _0x350935, _0x561aa2) {
  3784. _0x2b132.call(this, _0x38be3f, _0x23eece, _0x5eeb36, _0x4fd4e2);
  3785. this.oid = _0x3c448a;
  3786. this.setState(_0x5df470.STATE.IDLE);
  3787. this.delay = isNaN(parseInt(_0x350935)) ? _0x5df470.DELAY_DEFAULT : parseInt(_0x350935);
  3788. this.impulse = isNaN(parseFloat(_0x561aa2)) ? 1 : parseFloat(_0x561aa2);
  3789. this.anim = 0;
  3790. this.delayTimer = this.delay;
  3791. this.pos['x'] += _0x5df470.SOFFSET['x'];
  3792. this.loc = _0x4628a4.copy(this.pos);
  3793. this.fallSpeed = 0;
  3794. this.dim = _0x4628a4.make(0.7, 0.7);
  3795. }
  3796. _0x5df470.ASYNC = !0;
  3797. _0x5df470['ID'] = 34;
  3798. _0x5df470.NAME = "FIRE BLAST";
  3799. _0x5df470.ANIMATION_RATE = 3;
  3800. _0x5df470.DELAY_DEFAULT = 90;
  3801. _0x5df470.IMPULSE = 1.35;
  3802. _0x5df470.DRAG = 0.95;
  3803. _0x5df470.FALL_SPEED_ACCEL = 0.055;
  3804. _0x5df470.SOFFSET = _0x4628a4.make(0.15, 0.15);
  3805. _0x5df470.SPRITE = {};
  3806. _0x5df470.SPRITE_LIST = [{
  3807. 'NAME': "IDLE",
  3808. 'ID': 0,
  3809. 'INDEX': 219
  3810. }];
  3811. for (_0x4f3eec = 0; _0x4f3eec < _0x5df470.SPRITE_LIST.length; _0x4f3eec++) _0x5df470.SPRITE[_0x5df470.SPRITE_LIST[_0x4f3eec].NAME] = _0x5df470.SPRITE_LIST[_0x4f3eec], _0x5df470.SPRITE[_0x5df470.SPRITE_LIST[_0x4f3eec]['ID']] = _0x5df470.SPRITE_LIST[_0x4f3eec];
  3812. _0x5df470.STATE = {};
  3813. _0x5df470.STATE_LIST = [{
  3814. 'NAME': "IDLE",
  3815. 'ID': 0,
  3816. 'SPRITE': [_0x5df470.SPRITE.IDLE]
  3817. }];
  3818. for (_0x4f3eec = 0; _0x4f3eec < _0x5df470.STATE_LIST.length; _0x4f3eec++) _0x5df470.STATE[_0x5df470.STATE_LIST[_0x4f3eec].NAME] = _0x5df470.STATE_LIST[_0x4f3eec], _0x5df470.STATE[_0x5df470.STATE_LIST[_0x4f3eec]['ID']] = _0x5df470.STATE_LIST[_0x4f3eec];
  3819. _0x5df470.prototype.update = function(_0x19fa90) {};
  3820. _0x5df470.prototype.step = function() {
  3821. this.anim++;
  3822. this.sprite = this.state.SPRITE[parseInt(this.anim / _0x5df470.ANIMATION_RATE) % this.state.SPRITE.length];
  3823. 0 < this.delayTimer ? this.delayTimer-- : this.blast();
  3824. this.physics();
  3825. };
  3826. _0x5df470.prototype.physics = function() {
  3827. if (this.pos['y'] > this.loc['y'] || 0 < this.fallSpeed) this.fallSpeed = (this.fallSpeed - _0x5df470.FALL_SPEED_ACCEL) * _0x5df470.DRAG, this.pos['y'] += this.fallSpeed;
  3828. };
  3829. _0x5df470.prototype.blast = function() {
  3830. this.pos = _0x4628a4.copy(this.loc);
  3831. this.fallSpeed = _0x5df470.IMPULSE * this.impulse;
  3832. this.delayTimer = this.delay;
  3833. };
  3834. _0x5df470.prototype.playerCollide = function(_0xa4b7ce) {
  3835. this.dead || this.garbage || _0xa4b7ce.damage(this);
  3836. };
  3837. _0x5df470.prototype.playerStomp = function(_0x1dfd08) {
  3838. this.playerCollide(_0x1dfd08);
  3839. };
  3840. _0x5df470.prototype.playerBump = function(_0x5ce1d9) {
  3841. this.playerCollide(_0x5ce1d9);
  3842. };
  3843. _0x5df470.prototype.kill = function() {};
  3844. _0x5df470.prototype.isTangible = _0x2b132.prototype.isTangible;
  3845. _0x5df470.prototype.destroy = _0x2b132.prototype.destroy;
  3846. _0x5df470.prototype.setState = function(_0x565fa9) {
  3847. _0x565fa9 !== this.state && (this.state = _0x565fa9, this.sprite = _0x565fa9.SPRITE[0], this.anim = 0);
  3848. };
  3849. _0x5df470.prototype.draw = function(_0x2cfcb6) {
  3850. var _0x1e8001 = 0 <= this.fallSpeed ? 0 : 0x3;
  3851. _0x2cfcb6.push({
  3852. 'pos': _0x4628a4.subtract(this.pos, _0x5df470.SOFFSET),
  3853. 'reverse': !1,
  3854. 'index': this.sprite.INDEX,
  3855. 'mode': _0x1e8001
  3856. });
  3857. };
  3858. _0x2b132.REGISTER_OBJECT(_0x5df470);
  3859. "use strict";
  3860. function _0x42040c(_0x50d499, _0x35d6ca, _0x559c3e, _0x146778, _0x116a1d, _0x50587c) {
  3861. _0x2b132.call(this, _0x50d499, _0x35d6ca, _0x559c3e, _0x146778);
  3862. this.oid = _0x116a1d;
  3863. this.setState(_0x42040c.STATE.IDLE);
  3864. this.fireTimer = 0;
  3865. this.delay = isNaN(parseInt(_0x50587c)) ? _0x42040c.FIRE_DELAY_DEFAULT : parseInt(_0x50587c);
  3866. }
  3867. _0x42040c.ASYNC = !0;
  3868. _0x42040c['ID'] = 35;
  3869. _0x42040c.NAME = "LAUNCHER";
  3870. _0x42040c.ANIMATION_RATE = 3;
  3871. _0x42040c.FIRE_DELAY_DEFAULT = 150;
  3872. _0x42040c.SPRITE = {};
  3873. _0x42040c.SPRITE_LIST = [{
  3874. 'NAME': "IDLE",
  3875. 'ID': 0,
  3876. 'INDEX': 255
  3877. }];
  3878. for (_0x4f3eec = 0; _0x4f3eec < _0x42040c.SPRITE_LIST.length; _0x4f3eec++) _0x42040c.SPRITE[_0x42040c.SPRITE_LIST[_0x4f3eec].NAME] = _0x42040c.SPRITE_LIST[_0x4f3eec], _0x42040c.SPRITE[_0x42040c.SPRITE_LIST[_0x4f3eec]['ID']] = _0x42040c.SPRITE_LIST[_0x4f3eec];
  3879. _0x42040c.STATE = {};
  3880. _0x42040c.STATE_LIST = [{
  3881. 'NAME': "IDLE",
  3882. 'ID': 0,
  3883. 'SPRITE': [_0x42040c.SPRITE.IDLE]
  3884. }];
  3885. for (_0x4f3eec = 0; _0x4f3eec < _0x42040c.STATE_LIST.length; _0x4f3eec++) _0x42040c.STATE[_0x42040c.STATE_LIST[_0x4f3eec].NAME] = _0x42040c.STATE_LIST[_0x4f3eec], _0x42040c.STATE[_0x42040c.STATE_LIST[_0x4f3eec]['ID']] = _0x42040c.STATE_LIST[_0x4f3eec];
  3886. _0x42040c.prototype.update = function(_0x552576) {};
  3887. _0x42040c.prototype.step = function() {
  3888. ++this.fireTimer > this.delay && this.fire();
  3889. this.sound();
  3890. };
  3891. _0x42040c.prototype.sound = _0x2b132.prototype.sound;
  3892. _0x42040c.prototype.fire = function() {
  3893. this.fireTimer = 0;
  3894. this.game.createObject(_0x34d645['ID'], this.level, this.zone, _0x4628a4.copy(this.pos), []);
  3895. this.play("sfx/firework.wav", 1, 0.04);
  3896. };
  3897. _0x42040c.prototype.kill = function() {};
  3898. _0x42040c.prototype.isTangible = _0x2b132.prototype.isTangible;
  3899. _0x42040c.prototype.destroy = _0x2b132.prototype.destroy;
  3900. _0x42040c.prototype.setState = function(_0x17f68f) {
  3901. _0x17f68f !== this.state && (this.state = _0x17f68f, this.sprite = _0x17f68f.SPRITE[0], this.anim = 0);
  3902. };
  3903. _0x42040c.prototype.draw = function(_0x1bacc4) {};
  3904. _0x42040c.prototype.play = _0x2b132.prototype.play;
  3905. _0x2b132.REGISTER_OBJECT(_0x42040c);
  3906. "use strict";
  3907. function _0x34d645(_0x5f4be1, _0x473f3c, _0x24514b, _0x18c3c6, _0x2a1ed7) {
  3908. _0x2b132.call(this, _0x5f4be1, _0x473f3c, _0x24514b, _0x18c3c6);
  3909. this.oid = _0x2a1ed7;
  3910. this.setState(_0x34d645.STATE.IDLE);
  3911. this.bonkTimer = this.anim = 0;
  3912. this.dim = _0x4628a4.make(0.8, 0.8);
  3913. this.fallSpeed = this.moveSpeed = 0;
  3914. }
  3915. _0x34d645.ASYNC = !0;
  3916. _0x34d645['ID'] = 36;
  3917. _0x34d645.NAME = "BULLET";
  3918. _0x34d645.ANIMATION_RATE = 3;
  3919. _0x34d645.SPEED = 0.215;
  3920. _0x34d645.BONK_TIME = 90;
  3921. _0x34d645.BONK_IMP = _0x4628a4.make(0.25, 0.4);
  3922. _0x34d645.BONK_DECEL = 0.925;
  3923. _0x34d645.BONK_FALL_SPEED = 0.5;
  3924. _0x34d645.BONK_FALL_ACCEL = 0.085;
  3925. _0x34d645.DELAY_DEFAULT = 275;
  3926. _0x34d645.IMPULSE = _0x4628a4.make(0.225, 0.335);
  3927. _0x34d645.DRAG = 0.996;
  3928. _0x34d645.FALL_SPEED_ACCEL = 0.0055;
  3929. _0x34d645.SOFFSET = _0x4628a4.make(0.15, 0.15);
  3930. _0x34d645.SPRITE = {};
  3931. _0x34d645.SPRITE_LIST = [{
  3932. 'NAME': "IDLE",
  3933. 'ID': 0,
  3934. 'INDEX': 205
  3935. }];
  3936. for (_0x4f3eec = 0; _0x4f3eec < _0x34d645.SPRITE_LIST.length; _0x4f3eec++) _0x34d645.SPRITE[_0x34d645.SPRITE_LIST[_0x4f3eec].NAME] = _0x34d645.SPRITE_LIST[_0x4f3eec], _0x34d645.SPRITE[_0x34d645.SPRITE_LIST[_0x4f3eec]['ID']] = _0x34d645.SPRITE_LIST[_0x4f3eec];
  3937. _0x34d645.STATE = {};
  3938. _0x34d645.STATE_LIST = [{
  3939. 'NAME': "IDLE",
  3940. 'ID': 0,
  3941. 'SPRITE': [_0x34d645.SPRITE.IDLE]
  3942. }, {
  3943. 'NAME': "BONK",
  3944. 'ID': 81,
  3945. 'SPRITE': []
  3946. }];
  3947. for (_0x4f3eec = 0; _0x4f3eec < _0x34d645.STATE_LIST.length; _0x4f3eec++) _0x34d645.STATE[_0x34d645.STATE_LIST[_0x4f3eec].NAME] = _0x34d645.STATE_LIST[_0x4f3eec], _0x34d645.STATE[_0x34d645.STATE_LIST[_0x4f3eec]['ID']] = _0x34d645.STATE_LIST[_0x4f3eec];
  3948. _0x34d645.prototype.update = function(_0x51e68b) {};
  3949. _0x34d645.prototype.step = function() {
  3950. this.state === _0x34d645.STATE.BONK ? this.bonkTimer++ > _0x34d645.BONK_TIME || 0 > this.pos['y'] + this.dim['y'] ? this.destroy() : (this.pos = _0x4628a4.add(this.pos, _0x4628a4.make(this.moveSpeed, this.fallSpeed)), this.moveSpeed *= _0x34d645.BONK_DECEL, this.fallSpeed = Math.max(this.fallSpeed - _0x34d645.BONK_FALL_ACCEL, -_0x34d645.BONK_FALL_SPEED)) : (this.anim++, this.sprite = this.state.SPRITE[parseInt(this.anim / _0x34d645.ANIMATION_RATE) % this.state.SPRITE.length], this.physics(), this.sound());
  3951. };
  3952. _0x34d645.prototype.physics = function() {
  3953. 0 < this.pos['x'] ? this.pos['x'] -= _0x34d645.SPEED : this.destroy();
  3954. };
  3955. _0x34d645.prototype.sound = _0x2b132.prototype.sound;
  3956. _0x34d645.prototype.disable = function() {
  3957. this.disabled = !0;
  3958. };
  3959. _0x34d645.prototype.enable = function() {
  3960. this.disabled = !1;
  3961. };
  3962. _0x34d645.prototype.damage = function(_0x1e0e84) {};
  3963. _0x34d645.prototype.bonk = function() {
  3964. this.dead || (this.setState(_0x34d645.STATE.BONK), this.moveSpeed = _0x34d645.BONK_IMP['x'], this.fallSpeed = _0x34d645.BONK_IMP['y'], this.dead = !0, this.play("sfx/kick.wav", 1, 0.04));
  3965. };
  3966. _0x34d645.prototype.playerCollide = function(_0x253aea) {
  3967. this.dead || this.garbage || _0x253aea.damage(this);
  3968. };
  3969. _0x34d645.prototype.playerStomp = function(_0x15fee9) {
  3970. this.dead || this.garbage || (_0x15fee9.bounce(), this.play("sfx/stomp.wav", 1, 0.04), this.game.out.push(_0x217d86.encode(this.level, this.zone, this.oid, 1)));
  3971. };
  3972. _0x34d645.prototype.playerBump = function(_0x58e4a2) {
  3973. this.playerCollide(_0x58e4a2);
  3974. };
  3975. _0x34d645.prototype.kill = function() {};
  3976. _0x34d645.prototype.isTangible = _0x2b132.prototype.isTangible;
  3977. _0x34d645.prototype.destroy = _0x2b132.prototype.destroy;
  3978. _0x34d645.prototype.setState = function(_0x570365) {
  3979. _0x570365 !== this.state && (this.state = _0x570365, 0 < _0x570365.SPRITE.length && (this.sprite = _0x570365.SPRITE[0]), this.anim = 0);
  3980. };
  3981. _0x34d645.prototype.draw = function(_0x4ce88a) {
  3982. var _0x12adae;
  3983. _0x12adae = this.state === _0x34d645.STATE.BONK ? 3 : 0x0;
  3984. _0x4ce88a.push({
  3985. 'pos': _0x4628a4.subtract(this.pos, _0x34d645.SOFFSET),
  3986. 'reverse': !1,
  3987. 'index': this.sprite.INDEX,
  3988. 'mode': _0x12adae
  3989. });
  3990. };
  3991. _0x34d645.prototype.play = _0x2b132.prototype.play;
  3992. _0x2b132.REGISTER_OBJECT(_0x34d645);
  3993. "use strict";
  3994. function _0xae11c9(_0x4acaa0, _0x3243e4, _0x19fca4, _0x38c3ed, _0x2558fa, _0xdb54) {
  3995. _0x2b132.call(this, _0x4acaa0, _0x3243e4, _0x19fca4, _0x38c3ed);
  3996. this.owner = _0xdb54;
  3997. this.state = _0xae11c9.STATE.IDLE;
  3998. this.sprite = this.state.SPRITE[0];
  3999. this.deadTimer = this.anim = 0;
  4000. this.dim = _0x4628a4.make(0.5, 0.5);
  4001. this.fallSpeed = -_0xae11c9.FALL_SPEED_MAX;
  4002. this.dir = _0x2558fa;
  4003. }
  4004. _0xae11c9.ASYNC = !0;
  4005. _0xae11c9['ID'] = 161;
  4006. _0xae11c9.NAME = "FIREBALL PROJECTILE";
  4007. _0xae11c9.ANIMATION_RATE = 2;
  4008. _0xae11c9.SOFFSET = _0x4628a4.make(-0.25, -0.25);
  4009. _0xae11c9.DEAD_ANIM_LENGTH = 3;
  4010. _0xae11c9.SPEED = 0.475;
  4011. _0xae11c9.BOUNCE_SPEED = 0.425;
  4012. _0xae11c9.FALL_SPEED_MAX = 0.525;
  4013. _0xae11c9.FALL_SPEED_ACCEL = 0.075;
  4014. _0xae11c9.SPRITE = {};
  4015. _0xae11c9.SPRITE_LIST = [{
  4016. 'NAME': "IDLE0",
  4017. 'ID': 0,
  4018. 'INDEX': 208
  4019. }, {
  4020. 'NAME': "IDLE1",
  4021. 'ID': 1,
  4022. 'INDEX': 209
  4023. }, {
  4024. 'NAME': "IDLE2",
  4025. 'ID': 2,
  4026. 'INDEX': 210
  4027. }, {
  4028. 'NAME': "IDLE3",
  4029. 'ID': 3,
  4030. 'INDEX': 211
  4031. }, {
  4032. 'NAME': "DEAD0",
  4033. 'ID': 4,
  4034. 'INDEX': 212
  4035. }, {
  4036. 'NAME': "DEAD1",
  4037. 'ID': 5,
  4038. 'INDEX': 213
  4039. }, {
  4040. 'NAME': "DEAD2",
  4041. 'ID': 6,
  4042. 'INDEX': 214
  4043. }];
  4044. for (_0x4f3eec = 0; _0x4f3eec < _0xae11c9.SPRITE_LIST.length; _0x4f3eec++) _0xae11c9.SPRITE[_0xae11c9.SPRITE_LIST[_0x4f3eec].NAME] = _0xae11c9.SPRITE_LIST[_0x4f3eec], _0xae11c9.SPRITE[_0xae11c9.SPRITE_LIST[_0x4f3eec]['ID']] = _0xae11c9.SPRITE_LIST[_0x4f3eec];
  4045. _0xae11c9.STATE = {};
  4046. _0xae11c9.STATE_LIST = [{
  4047. 'NAME': "IDLE",
  4048. 'ID': 0,
  4049. 'SPRITE': [_0xae11c9.SPRITE.IDLE0, _0xae11c9.SPRITE.IDLE1, _0xae11c9.SPRITE.IDLE2, _0xae11c9.SPRITE.IDLE3]
  4050. }, {
  4051. 'NAME': "DEAD",
  4052. 'ID': 80,
  4053. 'SPRITE': [_0xae11c9.SPRITE.DEAD0, _0xae11c9.SPRITE.DEAD1, _0xae11c9.SPRITE.DEAD2]
  4054. }];
  4055. for (_0x4f3eec = 0; _0x4f3eec < _0xae11c9.STATE_LIST.length; _0x4f3eec++) _0xae11c9.STATE[_0xae11c9.STATE_LIST[_0x4f3eec].NAME] = _0xae11c9.STATE_LIST[_0x4f3eec], _0xae11c9.STATE[_0xae11c9.STATE_LIST[_0x4f3eec]['ID']] = _0xae11c9.STATE_LIST[_0x4f3eec];
  4056. _0xae11c9.prototype.update = function(_0x584933) {};
  4057. _0xae11c9.prototype.step = function() {
  4058. this.state === _0xae11c9.STATE.DEAD ? this.deadTimer < _0xae11c9.DEAD_ANIM_LENGTH ? this.sprite = this.state.SPRITE[this.deadTimer++] : this.destroy() : (this.anim++, this.sprite = this.state.SPRITE[parseInt(this.anim / _0xae11c9.ANIMATION_RATE) % this.state.SPRITE.length], this.control(), this.physics(), this.interaction(), 0 > this.pos['y'] && this.kill());
  4059. };
  4060. _0xae11c9.prototype.control = function() {};
  4061. _0xae11c9.prototype.physics = function() {
  4062. var _0x2a0bfe = this.dir ? _0xae11c9.SPEED : -_0xae11c9.SPEED;
  4063. this.fallSpeed = Math.max(this.fallSpeed - _0xae11c9.FALL_SPEED_ACCEL, -_0xae11c9.FALL_SPEED_MAX);
  4064. for (var _0x5b9a3f = _0x4628a4.add(this.pos, _0x4628a4.make(_0x2a0bfe, this.fallSpeed)), _0x5186fe = _0x4628a4.make(this.pos['x'] + Math.min(0, _0x2a0bfe), this.pos['y'] + Math.min(0, this.fallSpeed)), _0x2a0bfe = _0x4628a4.make(this.dim['x'] + Math.max(0, _0x2a0bfe), this.dim['y'] + Math.max(0, this.fallSpeed)), _0x540315 = this.game.world.getZone(this.level, this.zone).getTiles(_0x5186fe, _0x2a0bfe), _0x5186fe = _0x4628a4.make(1, 0x1), _0x2a0bfe = [], _0x3056db = 0; _0x3056db < _0x540315.length; _0x3056db++) {
  4065. var _0x531f4b = _0x540315[_0x3056db];
  4066. _0x531f4b.definition.COLLIDE && (_0x4c4bae.intersection(_0x531f4b.pos, _0x5186fe, _0x5b9a3f, this.dim) || _0x4c4bae.intersection(_0x531f4b.pos, _0x5186fe, this.pos, this.dim)) && _0x2a0bfe.push(_0x531f4b);
  4067. }
  4068. _0x540315 = _0x4628a4.make(_0x5b9a3f['x'], this.pos['y']);
  4069. for (_0x3056db = 0; _0x3056db < _0x2a0bfe.length; _0x3056db++) _0x531f4b = _0x2a0bfe[_0x3056db], _0x4c4bae.intersection(_0x531f4b.pos, _0x5186fe, _0x540315, this.dim) && (_0x540315['x'] = _0x540315['x'] + 0.5 * this.dim['x'] < _0x531f4b.pos['x'] + 0.5 * _0x5186fe['x'] ? _0x531f4b.pos['x'] - this.dim['x'] : _0x531f4b.pos['x'] + _0x5186fe['x'], this.kill());
  4070. _0x5b9a3f['x'] = _0x540315['x'];
  4071. for (_0x3056db = 0; _0x3056db < _0x2a0bfe.length; _0x3056db++) _0x531f4b = _0x2a0bfe[_0x3056db], _0x4c4bae.intersection(_0x531f4b.pos, _0x5186fe, _0x5b9a3f, this.dim) && (this.pos['y'] >= _0x5b9a3f['y'] ? (_0x5b9a3f['y'] = _0x531f4b.pos['y'] + _0x5186fe['y'], this.fallSpeed = _0xae11c9.BOUNCE_SPEED) : (_0x5b9a3f['y'] = _0x531f4b.pos['y'] - this.dim['y'], this.fallSpeed = -_0xae11c9.BOUNCE_SPEED));
  4072. this.pos = _0x5b9a3f;
  4073. };
  4074. _0xae11c9.prototype.interaction = function() {
  4075. for (var _0x16557a = 0; _0x16557a < this.game.objects.length; _0x16557a++) {
  4076. var _0x2aac1a = this.game.objects[_0x16557a];
  4077. if (_0x2aac1a !== this && _0x2aac1a.pid !== this.owner && _0x2aac1a.isTangible() && !(_0x2aac1a instanceof _0x307949) && _0x2aac1a.damage && _0x2aac1a.level === this.level && _0x2aac1a.zone === this.zone && _0x4c4bae.intersection(_0x2aac1a.pos, _0x2aac1a.dim, this.pos, this.dim)) {
  4078. this.owner === this.game.pid && _0x2aac1a.damage(this);
  4079. this.kill();
  4080. break;
  4081. }
  4082. }
  4083. };
  4084. _0xae11c9.prototype.playerCollide = function(_0x54be8a) {};
  4085. _0xae11c9.prototype.playerStomp = function(_0x8bb56b) {};
  4086. _0xae11c9.prototype.playerBump = function(_0x596cc1) {};
  4087. _0xae11c9.prototype.kill = function() {
  4088. this.setState(_0xae11c9.STATE.DEAD);
  4089. this.dead = !0;
  4090. };
  4091. _0xae11c9.prototype.isTangible = _0x2b132.prototype.isTangible;
  4092. _0xae11c9.prototype.destroy = _0x2b132.prototype.destroy;
  4093. _0xae11c9.prototype.setState = function(_0x39a75f) {
  4094. _0x39a75f !== this.state && (this.state = _0x39a75f, this.sprite = _0x39a75f.SPRITE[0], this.anim = 0);
  4095. };
  4096. _0xae11c9.prototype.draw = function(_0x3a6b81) {
  4097. _0x3a6b81.push({
  4098. 'pos': _0x4628a4.add(this.pos, _0xae11c9.SOFFSET),
  4099. 'reverse': !1,
  4100. 'index': this.sprite.INDEX,
  4101. 'mode': 0
  4102. });
  4103. };
  4104. _0x2b132.REGISTER_OBJECT(_0xae11c9);
  4105. "use strict";
  4106. function _0x494911(_0x12d9d5, _0x504bcb, _0x139e4e, _0x39acd0) {
  4107. _0x2b132.call(this, _0x12d9d5, _0x504bcb, _0x139e4e, _0x39acd0);
  4108. this.state = _0x494911.STATE.IDLE;
  4109. this.sprite = this.state.SPRITE[0];
  4110. this.anim = 0;
  4111. this.life = _0x494911.LIFE_MAX;
  4112. this.deadTimer = 0;
  4113. this.dim = _0x4628a4.make(1, 0.5);
  4114. }
  4115. _0x494911.ASYNC = !0;
  4116. _0x494911['ID'] = 162;
  4117. _0x494911.NAME = "FIRE BREATH PROJECTILE";
  4118. _0x494911.ANIMATION_RATE = 2;
  4119. _0x494911.SOFFSET = _0x4628a4.make(-0.5, -0.25);
  4120. _0x494911.LIFE_MAX = 175;
  4121. _0x494911.DEAD_ANIM_LENGTH = 3;
  4122. _0x494911.SPEED = 0.175;
  4123. _0x494911.SPRITE = {};
  4124. _0x494911.SPRITE_LIST = [{
  4125. 'NAME': "IDLE0",
  4126. 'ID': 0,
  4127. 'INDEX': [
  4128. [215, 0xd8]
  4129. ]
  4130. }, {
  4131. 'NAME': "IDLE1",
  4132. 'ID': 1,
  4133. 'INDEX': [
  4134. [217, 0xda]
  4135. ]
  4136. }, {
  4137. 'NAME': "DEAD0",
  4138. 'ID': 4,
  4139. 'INDEX': 212
  4140. }, {
  4141. 'NAME': "DEAD1",
  4142. 'ID': 5,
  4143. 'INDEX': 213
  4144. }, {
  4145. 'NAME': "DEAD2",
  4146. 'ID': 6,
  4147. 'INDEX': 214
  4148. }];
  4149. for (_0x4f3eec = 0; _0x4f3eec < _0x494911.SPRITE_LIST.length; _0x4f3eec++) _0x494911.SPRITE[_0x494911.SPRITE_LIST[_0x4f3eec].NAME] = _0x494911.SPRITE_LIST[_0x4f3eec], _0x494911.SPRITE[_0x494911.SPRITE_LIST[_0x4f3eec]['ID']] = _0x494911.SPRITE_LIST[_0x4f3eec];
  4150. _0x494911.STATE = {};
  4151. _0x494911.STATE_LIST = [{
  4152. 'NAME': "IDLE",
  4153. 'ID': 0,
  4154. 'SPRITE': [_0x494911.SPRITE.IDLE0, _0x494911.SPRITE.IDLE1]
  4155. }, {
  4156. 'NAME': "DEAD",
  4157. 'ID': 80,
  4158. 'SPRITE': [_0x494911.SPRITE.DEAD0, _0x494911.SPRITE.DEAD1, _0x494911.SPRITE.DEAD2]
  4159. }];
  4160. for (_0x4f3eec = 0; _0x4f3eec < _0x494911.STATE_LIST.length; _0x4f3eec++) _0x494911.STATE[_0x494911.STATE_LIST[_0x4f3eec].NAME] = _0x494911.STATE_LIST[_0x4f3eec], _0x494911.STATE[_0x494911.STATE_LIST[_0x4f3eec]['ID']] = _0x494911.STATE_LIST[_0x4f3eec];
  4161. _0x494911.prototype.update = function(_0x1fd983) {};
  4162. _0x494911.prototype.step = function() {
  4163. this.state === _0x494911.STATE.DEAD ? this.deadTimer < _0x494911.DEAD_ANIM_LENGTH ? this.sprite = this.state.SPRITE[this.deadTimer++] : this.destroy() : (this.anim++, this.sprite = this.state.SPRITE[parseInt(this.anim / _0x494911.ANIMATION_RATE) % this.state.SPRITE.length], this.control(), this.physics(), this.interaction(), 1 > this.life-- && this.kill());
  4164. };
  4165. _0x494911.prototype.control = function() {};
  4166. _0x494911.prototype.physics = function() {
  4167. this.pos = _0x4628a4.add(this.pos, _0x4628a4.make(-_0x494911.SPEED, 0));
  4168. };
  4169. _0x494911.prototype.interaction = function() {
  4170. for (var _0x148792 = 0; _0x148792 < this.game.objects.length; _0x148792++) {
  4171. var _0x4b7725 = this.game.objects[_0x148792];
  4172. if (_0x4b7725 instanceof _0x307949 && _0x4b7725.isTangible() && _0x4b7725.level === this.level && _0x4b7725.zone === this.zone && _0x4c4bae.intersection(_0x4b7725.pos, _0x4b7725.dim, this.pos, this.dim)) {
  4173. _0x4b7725.pid === this.game.pid && _0x4b7725.damage(this);
  4174. this.kill();
  4175. break;
  4176. }
  4177. }
  4178. };
  4179. _0x494911.prototype.playerCollide = function(_0x406824) {};
  4180. _0x494911.prototype.playerStomp = function(_0x436ce9) {};
  4181. _0x494911.prototype.playerBump = function(_0x4e8b6b) {};
  4182. _0x494911.prototype.kill = function() {
  4183. this.dead = !0;
  4184. this.setState(_0x494911.STATE.DEAD);
  4185. };
  4186. _0x494911.prototype.isTangible = _0x2b132.prototype.isTangible;
  4187. _0x494911.prototype.destroy = _0x2b132.prototype.destroy;
  4188. _0x494911.prototype.setState = function(_0x12c8c3) {
  4189. _0x12c8c3 !== this.state && (this.state = _0x12c8c3, this.sprite = _0x12c8c3.SPRITE[0], this.anim = 0);
  4190. };
  4191. _0x494911.prototype.draw = function(_0x46dfc3) {
  4192. if (this.sprite.INDEX instanceof Array)
  4193. for (var _0x23a0c8 = this.sprite.INDEX, _0x405d13 = 0; _0x405d13 < _0x23a0c8.length; _0x405d13++)
  4194. for (var _0xaf48ab = 0; _0xaf48ab < _0x23a0c8[_0x405d13].length; _0xaf48ab++) _0x46dfc3.push({
  4195. 'pos': _0x4628a4.add(_0x4628a4.add(this.pos, _0x494911.SOFFSET), _0x4628a4.make(_0xaf48ab, _0x405d13)),
  4196. 'reverse': !1,
  4197. 'index': _0x23a0c8[_0x405d13][_0xaf48ab]
  4198. });
  4199. else _0x46dfc3.push({
  4200. 'pos': _0x4628a4.add(this.pos, _0x494911.SOFFSET),
  4201. 'reverse': !1,
  4202. 'index': this.sprite.INDEX,
  4203. 'mode': 0
  4204. });
  4205. };
  4206. _0x2b132.REGISTER_OBJECT(_0x494911);
  4207. "use strict";
  4208. function _0xde7ae5(_0x1127d4, _0xab1245, _0x9c54a9, _0x6aed4f, _0x1efdf6) {
  4209. _0x2b132.call(this, _0x1127d4, _0xab1245, _0x9c54a9, _0x6aed4f);
  4210. this.owner = _0x1efdf6;
  4211. this.setState(_0xde7ae5.STATE.IDLE);
  4212. this.anim = 0;
  4213. this.throwTimer = _0xde7ae5.THROW_DELAY;
  4214. this.dir = !1;
  4215. this.dim = _0x4628a4.make(0.5, 0.5);
  4216. }
  4217. _0xde7ae5.ASYNC = !0;
  4218. _0xde7ae5['ID'] = 163;
  4219. _0xde7ae5.NAME = "HAMMER PROJECTILE";
  4220. _0xde7ae5.ANIMATION_RATE = 2;
  4221. _0xde7ae5.SOFFSET = _0x4628a4.make(-0.25, -0.25);
  4222. _0xde7ae5.THROW_DELAY = 13;
  4223. _0xde7ae5.IMPULSE = _0x4628a4.make(0.48, 0.915);
  4224. _0xde7ae5.DRAG = 0.965;
  4225. _0xde7ae5.FALL_SPEED_MAX = 0.65;
  4226. _0xde7ae5.FALL_SPEED_ACCEL = 0.095;
  4227. _0xde7ae5.SPRITE = {};
  4228. _0xde7ae5.SPRITE_LIST = [{
  4229. 'NAME': "IDLE0",
  4230. 'ID': 0,
  4231. 'INDEX': 221
  4232. }, {
  4233. 'NAME': "IDLE1",
  4234. 'ID': 1,
  4235. 'INDEX': 220
  4236. }, {
  4237. 'NAME': "IDLE2",
  4238. 'ID': 2,
  4239. 'INDEX': 223
  4240. }, {
  4241. 'NAME': "IDLE3",
  4242. 'ID': 3,
  4243. 'INDEX': 222
  4244. }];
  4245. for (_0x4f3eec = 0; _0x4f3eec < _0xde7ae5.SPRITE_LIST.length; _0x4f3eec++) _0xde7ae5.SPRITE[_0xde7ae5.SPRITE_LIST[_0x4f3eec].NAME] = _0xde7ae5.SPRITE_LIST[_0x4f3eec], _0xde7ae5.SPRITE[_0xde7ae5.SPRITE_LIST[_0x4f3eec]['ID']] = _0xde7ae5.SPRITE_LIST[_0x4f3eec];
  4246. _0xde7ae5.STATE = {};
  4247. _0xde7ae5.STATE_LIST = [{
  4248. 'NAME': "IDLE",
  4249. 'ID': 0,
  4250. 'SPRITE': [_0xde7ae5.SPRITE.IDLE0]
  4251. }, {
  4252. 'NAME': "THROW",
  4253. 'ID': 1,
  4254. 'SPRITE': [_0xde7ae5.SPRITE.IDLE0, _0xde7ae5.SPRITE.IDLE1, _0xde7ae5.SPRITE.IDLE2, _0xde7ae5.SPRITE.IDLE3]
  4255. }];
  4256. for (_0x4f3eec = 0; _0x4f3eec < _0xde7ae5.STATE_LIST.length; _0x4f3eec++) _0xde7ae5.STATE[_0xde7ae5.STATE_LIST[_0x4f3eec].NAME] = _0xde7ae5.STATE_LIST[_0x4f3eec], _0xde7ae5.STATE[_0xde7ae5.STATE_LIST[_0x4f3eec]['ID']] = _0xde7ae5.STATE_LIST[_0x4f3eec];
  4257. _0xde7ae5.prototype.update = function(_0x5745df) {};
  4258. _0xde7ae5.prototype.step = function() {
  4259. this.anim++;
  4260. this.sprite = this.state.SPRITE[parseInt(this.anim / _0xde7ae5.ANIMATION_RATE) % this.state.SPRITE.length];
  4261. 0 < this.throwTimer ? this.throwTimer-- : (this.state === _0xde7ae5.STATE.IDLE && this.throw(), this.physics(), this.interaction(), 0 > this.pos['y'] && this.destroy());
  4262. };
  4263. _0xde7ae5.prototype.physics = function() {
  4264. this.moveSpeed *= _0xde7ae5.DRAG;
  4265. this.fallSpeed = Math.max(this.fallSpeed - _0xde7ae5.FALL_SPEED_ACCEL, -_0xde7ae5.FALL_SPEED_MAX);
  4266. this.pos = _0x4628a4.add(this.pos, _0x4628a4.make(this.moveSpeed, this.fallSpeed));
  4267. };
  4268. _0xde7ae5.prototype.interaction = function() {
  4269. if (this.state === _0xde7ae5.STATE.THROW) {
  4270. var _0x8a4216 = this.game.getPlayer();
  4271. _0x8a4216 && _0x8a4216.isTangible() && _0x8a4216.level === this.level && _0x8a4216.zone === this.zone && _0x4c4bae.intersection(_0x8a4216.pos, _0x8a4216.dim, this.pos, this.dim) && _0x8a4216.damage(this);
  4272. }
  4273. };
  4274. _0xde7ae5.prototype.throw = function() {
  4275. this.moveSpeed = this.dir ? _0xde7ae5.IMPULSE['x'] : -_0xde7ae5.IMPULSE['x'];
  4276. this.fallSpeed = _0xde7ae5.IMPULSE['y'];
  4277. this.setState(_0xde7ae5.STATE.THROW);
  4278. };
  4279. _0xde7ae5.prototype.playerCollide = function(_0x5ce6ce) {};
  4280. _0xde7ae5.prototype.playerStomp = function(_0x181336) {};
  4281. _0xde7ae5.prototype.playerBump = function(_0x23c51a) {};
  4282. _0xde7ae5.prototype.kill = function() {};
  4283. _0xde7ae5.prototype.destroy = _0x2b132.prototype.destroy;
  4284. _0xde7ae5.prototype.isTangible = _0x2b132.prototype.isTangible;
  4285. _0xde7ae5.prototype.setState = function(_0x1289d8) {
  4286. _0x1289d8 !== this.state && (this.state = _0x1289d8, this.sprite = _0x1289d8.SPRITE[0], this.anim = 0);
  4287. };
  4288. _0xde7ae5.prototype.draw = function(_0x42ff8f) {
  4289. if (this.sprite.INDEX instanceof Array)
  4290. for (var _0x352199 = this.sprite.INDEX, _0x2c5891 = 0; _0x2c5891 < _0x352199.length; _0x2c5891++)
  4291. for (var _0x3cbbc7 = 0; _0x3cbbc7 < _0x352199[_0x2c5891].length; _0x3cbbc7++) _0x42ff8f.push({
  4292. 'pos': _0x4628a4.add(_0x4628a4.add(this.pos, _0xde7ae5.SOFFSET), _0x4628a4.make(_0x3cbbc7, _0x2c5891)),
  4293. 'reverse': !1,
  4294. 'index': _0x352199[_0x2c5891][_0x3cbbc7]
  4295. });
  4296. else _0x42ff8f.push({
  4297. 'pos': _0x4628a4.add(this.pos, _0xde7ae5.SOFFSET),
  4298. 'reverse': this.dir,
  4299. 'index': this.sprite.INDEX,
  4300. 'mode': 0
  4301. });
  4302. };
  4303. _0x2b132.REGISTER_OBJECT(_0xde7ae5);
  4304. "use strict";
  4305. function _0x32e92f(_0x24c556, _0x47bde3, _0x102424, _0x4c6de6, _0x598b87) {
  4306. _0x2b132.call(this, _0x24c556, _0x47bde3, _0x102424, _0x4c6de6);
  4307. this.oid = _0x598b87;
  4308. this.anim = 0;
  4309. this.dim = _0x4628a4.make(1, 0x1);
  4310. this.fallSpeed = this.moveSpeed = 0;
  4311. this.rise = this.grounded = !1;
  4312. _0x24c556 = _0x4628a4.make(1, 0x1);
  4313. _0x47bde3 = this.game.world.getZone(this.level, this.zone).getTiles(this.pos, this.dim);
  4314. for (_0x102424 = 0; _0x102424 < _0x47bde3.length; _0x102424++)
  4315. if (_0x4c4bae.intersection(_0x47bde3[_0x102424].pos, _0x24c556, this.pos, this.dim)) {
  4316. this.rise = !0;
  4317. break;
  4318. } this.dir = !1;
  4319. this.jump = -1;
  4320. }
  4321. _0x32e92f.ASYNC = !0;
  4322. _0x32e92f['ID'] = 80;
  4323. _0x32e92f.ANIMATION_RATE = 3;
  4324. _0x32e92f.MOVE_SPEED_MAX = 0.075;
  4325. _0x32e92f.FALL_SPEED_MAX = 0.45;
  4326. _0x32e92f.FALL_SPEED_ACCEL = 0.075;
  4327. _0x32e92f.JUMP_DECEL = 0.015;
  4328. _0x32e92f.JUMP_LENGTH = 3;
  4329. _0x32e92f.RISE_RATE = 0.15;
  4330. _0x32e92f.prototype.update = function(_0x53c0cb) {
  4331. switch (_0x53c0cb) {
  4332. case 0:
  4333. this.kill();
  4334. }
  4335. };
  4336. _0x32e92f.prototype.step = function() {
  4337. this.anim++;
  4338. this.sprite = this.state.SPRITE[parseInt(this.anim / _0x32e92f.ANIMATION_RATE) % this.state.SPRITE.length];
  4339. this.control();
  4340. this.physics();
  4341. 0 > this.pos['y'] && this.kill();
  4342. };
  4343. _0x32e92f.prototype.control = function() {
  4344. this.jump >= _0x32e92f.JUMP_LENGTH && (this.jump = -1);
  4345. };
  4346. _0x32e92f.prototype.physics = function() {
  4347. if (this.rise) {
  4348. this.rise = !1;
  4349. for (var _0x451d23 = _0x4628a4.make(1, 0x1), _0x5a4bfe = this.game.world.getZone(this.level, this.zone).getTiles(this.pos, this.dim), _0x165e89 = 0; _0x165e89 < _0x5a4bfe.length; _0x165e89++) {
  4350. var _0x33ba28 = _0x5a4bfe[_0x165e89];
  4351. if (_0x33ba28.definition.COLLIDE && _0x4c4bae.intersection(_0x33ba28.pos, _0x451d23, this.pos, this.dim)) {
  4352. this.rise = !0;
  4353. break;
  4354. }
  4355. }
  4356. this.rise && (this.pos['y'] += _0x32e92f.RISE_RATE);
  4357. } else {
  4358. -1 !== this.jump ? (this.fallSpeed = _0x32e92f.FALL_SPEED_MAX - this.jump * _0x32e92f.JUMP_DECEL, this.jump++) : (this.grounded && (this.fallSpeed = 0), this.fallSpeed = Math.max(this.fallSpeed - _0x32e92f.FALL_SPEED_ACCEL, -_0x32e92f.FALL_SPEED_MAX));
  4359. var _0x4a7264 = _0x4628a4.add(this.pos, _0x4628a4.make(this.moveSpeed, 0)),
  4360. _0x3f6d1f = _0x4628a4.add(this.pos, _0x4628a4.make(this.moveSpeed, this.fallSpeed)),
  4361. _0x451d23 = _0x4628a4.make(0 <= this.moveSpeed ? this.pos['x'] : this.pos['x'] + this.moveSpeed, 0 >= this.fallSpeed ? this.pos['y'] : this.pos['y'] + this.fallSpeed),
  4362. _0x5a4bfe = _0x4628a4.make(this.dim['y'] + Math.abs(this.moveSpeed), this.dim['y'] + Math.abs(this.fallSpeed)),
  4363. _0x5a4bfe = this.game.world.getZone(this.level, this.zone).getTiles(_0x451d23, _0x5a4bfe),
  4364. _0x451d23 = _0x4628a4.make(1, 0x1),
  4365. _0x4d27fb = !1;
  4366. this.grounded = !1;
  4367. for (_0x165e89 = 0; _0x165e89 < _0x5a4bfe.length; _0x165e89++) _0x33ba28 = _0x5a4bfe[_0x165e89], _0x33ba28.definition.COLLIDE && _0x4c4bae.intersection(_0x33ba28.pos, _0x451d23, _0x4a7264, this.dim) && (this.pos['x'] <= _0x4a7264['x'] && _0x4a7264['x'] + this.dim['x'] > _0x33ba28.pos['x'] ? (_0x4a7264['x'] = _0x33ba28.pos['x'] - this.dim['x'], _0x3f6d1f['x'] = _0x4a7264['x'], this.moveSpeed = 0, _0x4d27fb = !0) : this.pos['x'] >= _0x4a7264['x'] && _0x4a7264['x'] < _0x33ba28.pos['x'] + _0x451d23['x'] && (_0x4a7264['x'] = _0x33ba28.pos['x'] + _0x451d23['x'], _0x3f6d1f['x'] = _0x4a7264['x'], this.moveSpeed = 0, _0x4d27fb = !0));
  4368. for (_0x165e89 = 0; _0x165e89 < _0x5a4bfe.length; _0x165e89++) _0x33ba28 = _0x5a4bfe[_0x165e89], _0x33ba28.definition.COLLIDE && _0x4c4bae.intersection(_0x33ba28.pos, _0x451d23, _0x3f6d1f, this.dim) && (this.pos['y'] >= _0x3f6d1f['y'] && _0x3f6d1f['y'] < _0x33ba28.pos['y'] + _0x451d23['y'] ? (_0x3f6d1f['y'] = _0x33ba28.pos['y'] + _0x451d23['y'], this.grounded = !0) : this.pos['y'] <= _0x3f6d1f['y'] && _0x3f6d1f['y'] + this.dim['y'] > _0x33ba28.pos['y'] && (_0x3f6d1f['y'] = _0x33ba28.pos['y'] - this.dim['y'], this.jumping = -1, this.fallSpeed = 0));
  4369. this.pos = _0x4628a4.make(_0x4a7264['x'], _0x3f6d1f['y']);
  4370. _0x4d27fb && (this.dir = !this.dir);
  4371. }
  4372. };
  4373. _0x32e92f.prototype.bounce = function() {
  4374. this.grounded && (this.dir = !this.dir);
  4375. this.jump = 0;
  4376. };
  4377. _0x32e92f.prototype.playerCollide = function(_0x3e222e) {
  4378. this.dead || this.garbage || (_0x3e222e.powerup(this), this.kill(), this.game.out.push(_0x217d86.encode(this.level, this.zone, this.oid, 0)));
  4379. };
  4380. _0x32e92f.prototype.playerStomp = function(_0x46a170) {
  4381. this.playerCollide(_0x46a170);
  4382. };
  4383. _0x32e92f.prototype.playerBump = function(_0x390045) {
  4384. this.playerCollide(_0x390045);
  4385. };
  4386. _0x32e92f.prototype.kill = function() {
  4387. this.dead = !0;
  4388. this.destroy();
  4389. };
  4390. _0x32e92f.prototype.destroy = _0x2b132.prototype.destroy;
  4391. _0x32e92f.prototype.isTangible = _0x2b132.prototype.isTangible;
  4392. _0x32e92f.prototype.setState = function(_0x21221c) {
  4393. _0x21221c !== this.state && (this.state = _0x21221c, this.sprite = _0x21221c.SPRITE[0], this.anim = 0);
  4394. };
  4395. _0x32e92f.prototype.draw = function(_0x169745) {
  4396. _0x169745.push({
  4397. 'pos': this.pos,
  4398. 'reverse': this.reverse,
  4399. 'index': this.sprite.INDEX,
  4400. 'mode': 0
  4401. });
  4402. };
  4403. "use strict";
  4404. function _0x1461d8(_0x498f07, _0x8f312, _0x3662c8, _0x2b2eea, _0x506039) {
  4405. _0x32e92f.call(this, _0x498f07, _0x8f312, _0x3662c8, _0x2b2eea, _0x506039);
  4406. this.state = _0x1461d8.STATE.IDLE;
  4407. this.sprite = this.state.SPRITE[0];
  4408. }
  4409. _0x1461d8.ASYNC = !1;
  4410. _0x1461d8['ID'] = 81;
  4411. _0x1461d8.NAME = "MUSHROOM";
  4412. _0x1461d8.SPRITE = {};
  4413. _0x1461d8.SPRITE_LIST = [{
  4414. 'NAME': "IDLE",
  4415. 'ID': 0,
  4416. 'INDEX': 233
  4417. }];
  4418. for (_0x4f3eec = 0; _0x4f3eec < _0x1461d8.SPRITE_LIST.length; _0x4f3eec++) _0x1461d8.SPRITE[_0x1461d8.SPRITE_LIST[_0x4f3eec].NAME] = _0x1461d8.SPRITE_LIST[_0x4f3eec], _0x1461d8.SPRITE[_0x1461d8.SPRITE_LIST[_0x4f3eec]['ID']] = _0x1461d8.SPRITE_LIST[_0x4f3eec];
  4419. _0x1461d8.STATE = {};
  4420. _0x1461d8.STATE_LIST = [{
  4421. 'NAME': "IDLE",
  4422. 'ID': 0,
  4423. 'SPRITE': [_0x1461d8.SPRITE.IDLE]
  4424. }];
  4425. for (_0x4f3eec = 0; _0x4f3eec < _0x1461d8.STATE_LIST.length; _0x4f3eec++) _0x1461d8.STATE[_0x1461d8.STATE_LIST[_0x4f3eec].NAME] = _0x1461d8.STATE_LIST[_0x4f3eec], _0x1461d8.STATE[_0x1461d8.STATE_LIST[_0x4f3eec]['ID']] = _0x1461d8.STATE_LIST[_0x4f3eec];
  4426. _0x1461d8.prototype.update = _0x32e92f.prototype.update;
  4427. _0x1461d8.prototype.step = _0x32e92f.prototype.step;
  4428. _0x1461d8.prototype.control = function() {
  4429. _0x32e92f.prototype.control.call(this);
  4430. this.moveSpeed = this.dir ? -_0x32e92f.MOVE_SPEED_MAX : _0x32e92f.MOVE_SPEED_MAX;
  4431. };
  4432. _0x1461d8.prototype.physics = _0x32e92f.prototype.physics;
  4433. _0x1461d8.prototype.bounce = _0x32e92f.prototype.bounce;
  4434. _0x1461d8.prototype.playerCollide = _0x32e92f.prototype.playerCollide;
  4435. _0x1461d8.prototype.playerStomp = _0x32e92f.prototype.playerStomp;
  4436. _0x1461d8.prototype.playerBump = _0x32e92f.prototype.playerBump;
  4437. _0x1461d8.prototype.kill = _0x32e92f.prototype.kill;
  4438. _0x1461d8.prototype.destroy = _0x2b132.prototype.destroy;
  4439. _0x1461d8.prototype.isTangible = _0x2b132.prototype.isTangible;
  4440. _0x1461d8.prototype.setState = _0x32e92f.prototype.setState;
  4441. _0x1461d8.prototype.draw = _0x32e92f.prototype.draw;
  4442. _0x2b132.REGISTER_OBJECT(_0x1461d8);
  4443. "use strict";
  4444. function _0x5b7df1(_0x1c4b69, _0x3b1b6b, _0x344167, _0xd55f34, _0x5a3dab) {
  4445. _0x32e92f.call(this, _0x1c4b69, _0x3b1b6b, _0x344167, _0xd55f34, _0x5a3dab);
  4446. this.state = _0x5b7df1.STATE.IDLE;
  4447. this.sprite = this.state.SPRITE[0];
  4448. }
  4449. _0x5b7df1.ASYNC = !1;
  4450. _0x5b7df1['ID'] = 82;
  4451. _0x5b7df1.NAME = "FIRE FLOWER";
  4452. _0x5b7df1.SPRITE = {};
  4453. _0x5b7df1.SPRITE_LIST = [{
  4454. 'NAME': "IDLE0",
  4455. 'ID': 0,
  4456. 'INDEX': 228
  4457. }, {
  4458. 'NAME': "IDLE1",
  4459. 'ID': 1,
  4460. 'INDEX': 229
  4461. }, {
  4462. 'NAME': "IDLE2",
  4463. 'ID': 2,
  4464. 'INDEX': 230
  4465. }, {
  4466. 'NAME': "IDLE3",
  4467. 'ID': 3,
  4468. 'INDEX': 231
  4469. }];
  4470. for (_0x4f3eec = 0; _0x4f3eec < _0x5b7df1.SPRITE_LIST.length; _0x4f3eec++) _0x5b7df1.SPRITE[_0x5b7df1.SPRITE_LIST[_0x4f3eec].NAME] = _0x5b7df1.SPRITE_LIST[_0x4f3eec], _0x5b7df1.SPRITE[_0x5b7df1.SPRITE_LIST[_0x4f3eec]['ID']] = _0x5b7df1.SPRITE_LIST[_0x4f3eec];
  4471. _0x5b7df1.STATE = {};
  4472. _0x5b7df1.STATE_LIST = [{
  4473. 'NAME': "IDLE",
  4474. 'ID': 0,
  4475. 'SPRITE': [_0x5b7df1.SPRITE.IDLE0, _0x5b7df1.SPRITE.IDLE1, _0x5b7df1.SPRITE.IDLE2, _0x5b7df1.SPRITE.IDLE3]
  4476. }];
  4477. for (_0x4f3eec = 0; _0x4f3eec < _0x5b7df1.STATE_LIST.length; _0x4f3eec++) _0x5b7df1.STATE[_0x5b7df1.STATE_LIST[_0x4f3eec].NAME] = _0x5b7df1.STATE_LIST[_0x4f3eec], _0x5b7df1.STATE[_0x5b7df1.STATE_LIST[_0x4f3eec]['ID']] = _0x5b7df1.STATE_LIST[_0x4f3eec];
  4478. _0x5b7df1.prototype.update = _0x32e92f.prototype.update;
  4479. _0x5b7df1.prototype.step = _0x32e92f.prototype.step;
  4480. _0x5b7df1.prototype.control = function() {};
  4481. _0x5b7df1.prototype.physics = _0x32e92f.prototype.physics;
  4482. _0x5b7df1.prototype.playerCollide = _0x32e92f.prototype.playerCollide;
  4483. _0x5b7df1.prototype.playerStomp = _0x32e92f.prototype.playerStomp;
  4484. _0x5b7df1.prototype.playerBump = _0x32e92f.prototype.playerBump;
  4485. _0x5b7df1.prototype.kill = _0x32e92f.prototype.kill;
  4486. _0x5b7df1.prototype.destroy = _0x2b132.prototype.destroy;
  4487. _0x5b7df1.prototype.isTangible = _0x2b132.prototype.isTangible;
  4488. _0x5b7df1.prototype.setState = _0x32e92f.prototype.setState;
  4489. _0x5b7df1.prototype.draw = _0x32e92f.prototype.draw;
  4490. _0x2b132.REGISTER_OBJECT(_0x5b7df1);
  4491. "use strict";
  4492. function _0x34438c(_0x203b8b, _0x183a74, _0x18935a, _0x130a95, _0x226095) {
  4493. _0x32e92f.call(this, _0x203b8b, _0x183a74, _0x18935a, _0x130a95, _0x226095);
  4494. this.state = _0x34438c.STATE.IDLE;
  4495. this.sprite = this.state.SPRITE[0];
  4496. this.groundTimer = 0;
  4497. }
  4498. _0x34438c.ASYNC = !1;
  4499. _0x34438c['ID'] = 84;
  4500. _0x34438c.NAME = "STAR";
  4501. _0x34438c.JUMP_LENGTH = 6;
  4502. _0x34438c.MOVE_SPEED_MAX = 0.125;
  4503. _0x34438c.JUMP_DELAY = 2;
  4504. _0x34438c.SPRITE = {};
  4505. _0x34438c.SPRITE_LIST = [{
  4506. 'NAME': "IDLE0",
  4507. 'ID': 0,
  4508. 'INDEX': 224
  4509. }, {
  4510. 'NAME': "IDLE1",
  4511. 'ID': 1,
  4512. 'INDEX': 225
  4513. }, {
  4514. 'NAME': "IDLE2",
  4515. 'ID': 2,
  4516. 'INDEX': 226
  4517. }, {
  4518. 'NAME': "IDLE3",
  4519. 'ID': 3,
  4520. 'INDEX': 227
  4521. }];
  4522. for (_0x4f3eec = 0; _0x4f3eec < _0x34438c.SPRITE_LIST.length; _0x4f3eec++) _0x34438c.SPRITE[_0x34438c.SPRITE_LIST[_0x4f3eec].NAME] = _0x34438c.SPRITE_LIST[_0x4f3eec], _0x34438c.SPRITE[_0x34438c.SPRITE_LIST[_0x4f3eec]['ID']] = _0x34438c.SPRITE_LIST[_0x4f3eec];
  4523. _0x34438c.STATE = {};
  4524. _0x34438c.STATE_LIST = [{
  4525. 'NAME': "IDLE",
  4526. 'ID': 0,
  4527. 'SPRITE': [_0x34438c.SPRITE.IDLE0, _0x34438c.SPRITE.IDLE1, _0x34438c.SPRITE.IDLE2, _0x34438c.SPRITE.IDLE3]
  4528. }];
  4529. for (_0x4f3eec = 0; _0x4f3eec < _0x34438c.STATE_LIST.length; _0x4f3eec++) _0x34438c.STATE[_0x34438c.STATE_LIST[_0x4f3eec].NAME] = _0x34438c.STATE_LIST[_0x4f3eec], _0x34438c.STATE[_0x34438c.STATE_LIST[_0x4f3eec]['ID']] = _0x34438c.STATE_LIST[_0x4f3eec];
  4530. _0x34438c.prototype.update = _0x32e92f.prototype.update;
  4531. _0x34438c.prototype.step = _0x32e92f.prototype.step;
  4532. _0x34438c.prototype.control = function() {
  4533. this.moveSpeed = this.dir ? -_0x34438c.MOVE_SPEED_MAX : _0x34438c.MOVE_SPEED_MAX;
  4534. this.grounded && ++this.groundTimer >= _0x34438c.JUMP_DELAY ? this.jump = 0 : this.jump > _0x34438c.JUMP_LENGTH && (this.jump = -1, this.groundTimer = 0);
  4535. };
  4536. _0x34438c.prototype.physics = _0x32e92f.prototype.physics;
  4537. _0x34438c.prototype.bounce = _0x32e92f.prototype.bounce;
  4538. _0x34438c.prototype.playerCollide = _0x32e92f.prototype.playerCollide;
  4539. _0x34438c.prototype.playerStomp = _0x32e92f.prototype.playerStomp;
  4540. _0x34438c.prototype.playerBump = _0x32e92f.prototype.playerBump;
  4541. _0x34438c.prototype.kill = _0x32e92f.prototype.kill;
  4542. _0x34438c.prototype.destroy = _0x2b132.prototype.destroy;
  4543. _0x34438c.prototype.isTangible = _0x2b132.prototype.isTangible;
  4544. _0x34438c.prototype.setState = _0x32e92f.prototype.setState;
  4545. _0x34438c.prototype.draw = _0x32e92f.prototype.draw;
  4546. _0x2b132.REGISTER_OBJECT(_0x34438c);
  4547. "use strict";
  4548. function _0x4786c4(_0x2f53f0, _0x5bf0ed, _0x406c8d, _0xfe8e35, _0x5db64b) {
  4549. _0x32e92f.call(this, _0x2f53f0, _0x5bf0ed, _0x406c8d, _0xfe8e35, _0x5db64b);
  4550. this.state = _0x4786c4.STATE.IDLE;
  4551. this.sprite = this.state.SPRITE[0];
  4552. }
  4553. _0x4786c4.ASYNC = !1;
  4554. _0x4786c4['ID'] = 83;
  4555. _0x4786c4.NAME = "ONEUP";
  4556. _0x4786c4.SPRITE = {};
  4557. _0x4786c4.SPRITE_LIST = [{
  4558. 'NAME': "IDLE",
  4559. 'ID': 0,
  4560. 'INDEX': 232
  4561. }];
  4562. for (_0x4f3eec = 0; _0x4f3eec < _0x4786c4.SPRITE_LIST.length; _0x4f3eec++) _0x4786c4.SPRITE[_0x4786c4.SPRITE_LIST[_0x4f3eec].NAME] = _0x4786c4.SPRITE_LIST[_0x4f3eec], _0x4786c4.SPRITE[_0x4786c4.SPRITE_LIST[_0x4f3eec]['ID']] = _0x4786c4.SPRITE_LIST[_0x4f3eec];
  4563. _0x4786c4.STATE = {};
  4564. _0x4786c4.STATE_LIST = [{
  4565. 'NAME': "IDLE",
  4566. 'ID': 0,
  4567. 'SPRITE': [_0x4786c4.SPRITE.IDLE]
  4568. }];
  4569. for (_0x4f3eec = 0; _0x4f3eec < _0x4786c4.STATE_LIST.length; _0x4f3eec++) _0x4786c4.STATE[_0x4786c4.STATE_LIST[_0x4f3eec].NAME] = _0x4786c4.STATE_LIST[_0x4f3eec], _0x4786c4.STATE[_0x4786c4.STATE_LIST[_0x4f3eec]['ID']] = _0x4786c4.STATE_LIST[_0x4f3eec];
  4570. _0x4786c4.prototype.update = _0x32e92f.prototype.update;
  4571. _0x4786c4.prototype.step = _0x32e92f.prototype.step;
  4572. _0x4786c4.prototype.control = function() {
  4573. _0x32e92f.prototype.control.call(this);
  4574. this.moveSpeed = this.dir ? -_0x32e92f.MOVE_SPEED_MAX : _0x32e92f.MOVE_SPEED_MAX;
  4575. };
  4576. _0x4786c4.prototype.physics = _0x32e92f.prototype.physics;
  4577. _0x4786c4.prototype.bounce = _0x32e92f.prototype.bounce;
  4578. _0x4786c4.prototype.playerCollide = _0x32e92f.prototype.playerCollide;
  4579. _0x4786c4.prototype.playerStomp = _0x32e92f.prototype.playerStomp;
  4580. _0x4786c4.prototype.playerBump = _0x32e92f.prototype.playerBump;
  4581. _0x4786c4.prototype.kill = _0x32e92f.prototype.kill;
  4582. _0x4786c4.prototype.destroy = _0x2b132.prototype.destroy;
  4583. _0x4786c4.prototype.isTangible = _0x2b132.prototype.isTangible;
  4584. _0x4786c4.prototype.setState = _0x32e92f.prototype.setState;
  4585. _0x4786c4.prototype.draw = _0x32e92f.prototype.draw;
  4586. _0x2b132.REGISTER_OBJECT(_0x4786c4);
  4587. "use strict";
  4588. function _0x95234(_0x58699c, _0x15e055, _0x562a1b, _0x15c08c, _0x4fab92) {
  4589. _0x32e92f.call(this, _0x58699c, _0x15e055, _0x562a1b, _0x15c08c, _0x4fab92);
  4590. this.state = _0x95234.STATE.IDLE;
  4591. this.sprite = this.state.SPRITE[0];
  4592. this.used = !1;
  4593. this.dim = _0x4628a4.make(1, 0x3);
  4594. }
  4595. _0x95234.ASYNC = !0;
  4596. _0x95234['ID'] = 85;
  4597. _0x95234.NAME = "AXE";
  4598. _0x95234.SPRITE = {};
  4599. _0x95234.SPRITE_LIST = [{
  4600. 'NAME': "IDLE0",
  4601. 'ID': 0,
  4602. 'INDEX': 236
  4603. }, {
  4604. 'NAME': "IDLE1",
  4605. 'ID': 1,
  4606. 'INDEX': 237
  4607. }, {
  4608. 'NAME': "IDLE2",
  4609. 'ID': 2,
  4610. 'INDEX': 238
  4611. }, {
  4612. 'NAME': "IDLE3",
  4613. 'ID': 3,
  4614. 'INDEX': 239
  4615. }];
  4616. for (_0x4f3eec = 0; _0x4f3eec < _0x95234.SPRITE_LIST.length; _0x4f3eec++) _0x95234.SPRITE[_0x95234.SPRITE_LIST[_0x4f3eec].NAME] = _0x95234.SPRITE_LIST[_0x4f3eec], _0x95234.SPRITE[_0x95234.SPRITE_LIST[_0x4f3eec]['ID']] = _0x95234.SPRITE_LIST[_0x4f3eec];
  4617. _0x95234.STATE = {};
  4618. _0x95234.STATE_LIST = [{
  4619. 'NAME': "IDLE",
  4620. 'ID': 0,
  4621. 'SPRITE': [_0x95234.SPRITE.IDLE0, _0x95234.SPRITE.IDLE1, _0x95234.SPRITE.IDLE2, _0x95234.SPRITE.IDLE3]
  4622. }];
  4623. for (_0x4f3eec = 0; _0x4f3eec < _0x95234.STATE_LIST.length; _0x4f3eec++) _0x95234.STATE[_0x95234.STATE_LIST[_0x4f3eec].NAME] = _0x95234.STATE_LIST[_0x4f3eec], _0x95234.STATE[_0x95234.STATE_LIST[_0x4f3eec]['ID']] = _0x95234.STATE_LIST[_0x4f3eec];
  4624. _0x95234.prototype.update = function(_0x102756) {};
  4625. _0x95234.prototype.step = _0x32e92f.prototype.step;
  4626. _0x95234.prototype.control = function() {};
  4627. _0x95234.prototype.physics = _0x32e92f.prototype.physics;
  4628. _0x95234.prototype.playerCollide = function(_0x43b1f1) {
  4629. if (!(this.dead || this.garbage || this.used))
  4630. for (_0x43b1f1.powerup(this), this.used = !0, _0x43b1f1 = 0; _0x43b1f1 < this.game.objects.length; _0x43b1f1++) {
  4631. var _0x1296be = this.game.objects[_0x43b1f1];
  4632. if (_0x1296be instanceof _0x47b80a && _0x1296be.level === this.level && _0x1296be.zone === _0x1296be.zone && !_0x1296be.dead) {
  4633. _0x1296be.bonk();
  4634. break;
  4635. }
  4636. }
  4637. };
  4638. _0x95234.prototype.playerStomp = _0x32e92f.prototype.playerStomp;
  4639. _0x95234.prototype.playerBump = _0x32e92f.prototype.playerBump;
  4640. _0x95234.prototype.kill = _0x32e92f.prototype.kill;
  4641. _0x95234.prototype.isTangible = _0x2b132.prototype.isTangible;
  4642. _0x95234.prototype.destroy = _0x2b132.prototype.destroy;
  4643. _0x95234.prototype.setState = _0x32e92f.prototype.setState;
  4644. _0x95234.prototype.draw = _0x32e92f.prototype.draw;
  4645. _0x2b132.REGISTER_OBJECT(_0x95234);
  4646. "use strict";
  4647. function _0x2aa8a6(_0x5ea5de, _0x3cdc3d, _0x300945, _0x416a27, _0x5db90f) {
  4648. _0x32e92f.call(this, _0x5ea5de, _0x3cdc3d, _0x300945, _0x416a27, _0x5db90f);
  4649. this.state = _0x2aa8a6.STATE.IDLE;
  4650. this.sprite = this.state.SPRITE[0];
  4651. }
  4652. _0x2aa8a6.ASYNC = !1;
  4653. _0x2aa8a6['ID'] = 86;
  4654. _0x2aa8a6.NAME = "POISON MUSHROOM";
  4655. _0x2aa8a6.SPRITE = {};
  4656. _0x2aa8a6.SPRITE_LIST = [{
  4657. 'NAME': "IDLE",
  4658. 'ID': 0,
  4659. 'INDEX': 234
  4660. }];
  4661. for (_0x4f3eec = 0; _0x4f3eec < _0x2aa8a6.SPRITE_LIST.length; _0x4f3eec++) _0x2aa8a6.SPRITE[_0x2aa8a6.SPRITE_LIST[_0x4f3eec].NAME] = _0x2aa8a6.SPRITE_LIST[_0x4f3eec], _0x2aa8a6.SPRITE[_0x2aa8a6.SPRITE_LIST[_0x4f3eec]['ID']] = _0x2aa8a6.SPRITE_LIST[_0x4f3eec];
  4662. _0x2aa8a6.STATE = {};
  4663. _0x2aa8a6.STATE_LIST = [{
  4664. 'NAME': "IDLE",
  4665. 'ID': 0,
  4666. 'SPRITE': [_0x2aa8a6.SPRITE.IDLE]
  4667. }];
  4668. for (_0x4f3eec = 0; _0x4f3eec < _0x2aa8a6.STATE_LIST.length; _0x4f3eec++) _0x2aa8a6.STATE[_0x2aa8a6.STATE_LIST[_0x4f3eec].NAME] = _0x2aa8a6.STATE_LIST[_0x4f3eec], _0x2aa8a6.STATE[_0x2aa8a6.STATE_LIST[_0x4f3eec]['ID']] = _0x2aa8a6.STATE_LIST[_0x4f3eec];
  4669. _0x2aa8a6.prototype.update = _0x32e92f.prototype.update;
  4670. _0x2aa8a6.prototype.step = _0x32e92f.prototype.step;
  4671. _0x2aa8a6.prototype.control = function() {
  4672. _0x32e92f.prototype.control.call(this);
  4673. this.moveSpeed = this.dir ? -_0x32e92f.MOVE_SPEED_MAX : _0x32e92f.MOVE_SPEED_MAX;
  4674. };
  4675. _0x2aa8a6.prototype.physics = _0x32e92f.prototype.physics;
  4676. _0x2aa8a6.prototype.bounce = _0x32e92f.prototype.bounce;
  4677. _0x2aa8a6.prototype.playerCollide = _0x32e92f.prototype.playerCollide;
  4678. _0x2aa8a6.prototype.playerStomp = _0x32e92f.prototype.playerStomp;
  4679. _0x2aa8a6.prototype.playerBump = _0x32e92f.prototype.playerBump;
  4680. _0x2aa8a6.prototype.kill = _0x32e92f.prototype.kill;
  4681. _0x2aa8a6.prototype.destroy = _0x2b132.prototype.destroy;
  4682. _0x2aa8a6.prototype.isTangible = _0x2b132.prototype.isTangible;
  4683. _0x2aa8a6.prototype.setState = _0x32e92f.prototype.setState;
  4684. _0x2aa8a6.prototype.draw = _0x32e92f.prototype.draw;
  4685. _0x2b132.REGISTER_OBJECT(_0x2aa8a6);
  4686. "use strict";
  4687. function _0x43220d(_0x45f8ec, _0x474ef3, _0x4323b8, _0x1f325e, _0x2e7a84) {
  4688. _0x2b132.call(this, _0x45f8ec, _0x474ef3, _0x4323b8, _0x1f325e);
  4689. this.oid = _0x2e7a84;
  4690. this.state = _0x43220d.STATE.IDLE;
  4691. this.sprite = this.state.SPRITE[0];
  4692. this.anim = 0;
  4693. this.dim = _0x4628a4.make(1, 0x1);
  4694. }
  4695. _0x43220d.ASYNC = !1;
  4696. _0x43220d['ID'] = 97;
  4697. _0x43220d.NAME = "COIN";
  4698. _0x43220d.ANIMATION_RATE = 5;
  4699. _0x43220d.SPRITE = {};
  4700. _0x43220d.SPRITE_LIST = [{
  4701. 'NAME': "IDLE0",
  4702. 'ID': 0,
  4703. 'INDEX': 240
  4704. }, {
  4705. 'NAME': "IDLE1",
  4706. 'ID': 1,
  4707. 'INDEX': 241
  4708. }, {
  4709. 'NAME': "IDLE2",
  4710. 'ID': 2,
  4711. 'INDEX': 242
  4712. }, {
  4713. 'NAME': "IDLE3",
  4714. 'ID': 3,
  4715. 'INDEX': 241
  4716. }];
  4717. for (_0x4f3eec = 0; _0x4f3eec < _0x43220d.SPRITE_LIST.length; _0x4f3eec++) _0x43220d.SPRITE[_0x43220d.SPRITE_LIST[_0x4f3eec].NAME] = _0x43220d.SPRITE_LIST[_0x4f3eec], _0x43220d.SPRITE[_0x43220d.SPRITE_LIST[_0x4f3eec]['ID']] = _0x43220d.SPRITE_LIST[_0x4f3eec];
  4718. _0x43220d.STATE = {};
  4719. _0x43220d.STATE_LIST = [{
  4720. 'NAME': "IDLE",
  4721. 'ID': 0,
  4722. 'SPRITE': [_0x43220d.SPRITE.IDLE0, _0x43220d.SPRITE.IDLE1, _0x43220d.SPRITE.IDLE2, _0x43220d.SPRITE.IDLE3]
  4723. }];
  4724. for (_0x4f3eec = 0; _0x4f3eec < _0x43220d.STATE_LIST.length; _0x4f3eec++) _0x43220d.STATE[_0x43220d.STATE_LIST[_0x4f3eec].NAME] = _0x43220d.STATE_LIST[_0x4f3eec], _0x43220d.STATE[_0x43220d.STATE_LIST[_0x4f3eec]['ID']] = _0x43220d.STATE_LIST[_0x4f3eec];
  4725. _0x43220d.prototype.update = function(_0xf474c5) {
  4726. switch (_0xf474c5) {
  4727. case 0:
  4728. this.kill();
  4729. }
  4730. };
  4731. _0x43220d.prototype.step = function() {
  4732. this.anim++;
  4733. this.sprite = this.state.SPRITE[parseInt(this.anim / _0x43220d.ANIMATION_RATE) % this.state.SPRITE.length];
  4734. };
  4735. _0x43220d.prototype.playerCollide = function(_0xd7d4c9) {
  4736. this.dead || this.garbage || (_0xd7d4c9.powerup(this), this.kill(), this.game.out.push(_0x217d86.encode(this.level, this.zone, this.oid, 0)));
  4737. };
  4738. _0x43220d.prototype.playerStomp = function(_0x27e3e5) {
  4739. this.playerCollide(_0x27e3e5);
  4740. };
  4741. _0x43220d.prototype.playerBump = function(_0x352b9a) {
  4742. this.playerCollide(_0x352b9a);
  4743. };
  4744. _0x43220d.prototype.kill = function() {
  4745. this.dead = !0;
  4746. this.destroy();
  4747. };
  4748. _0x43220d.prototype.isTangible = _0x2b132.prototype.isTangible;
  4749. _0x43220d.prototype.destroy = _0x2b132.prototype.destroy;
  4750. _0x43220d.prototype.setState = function(_0x781f05) {
  4751. _0x781f05 !== this.state && (this.state = _0x781f05, this.sprite = _0x781f05.SPRITE[0], this.anim = 0);
  4752. };
  4753. _0x43220d.prototype.draw = function(_0x483caa) {
  4754. _0x483caa.push({
  4755. 'pos': this.pos,
  4756. 'reverse': this.reverse,
  4757. 'index': this.sprite.INDEX,
  4758. 'mode': 0
  4759. });
  4760. };
  4761. _0x2b132.REGISTER_OBJECT(_0x43220d);
  4762. "use strict";
  4763. function _0x438bb6(_0x1b686c, _0x5efa39, _0x3d98b2, _0x144ddb, _0x2c2db4) {
  4764. _0x2b132.call(this, _0x1b686c, _0x5efa39, _0x3d98b2, _0x144ddb);
  4765. this.oid = _0x2c2db4;
  4766. this.setState(_0x438bb6.STATE.IDLE);
  4767. this.anim = 0;
  4768. }
  4769. _0x438bb6.ASYNC = !0;
  4770. _0x438bb6['ID'] = 254;
  4771. _0x438bb6.NAME = "CHECKMARK";
  4772. _0x438bb6.ANIMATION_RATE = 3;
  4773. _0x438bb6.SPRITE = {};
  4774. _0x438bb6.SPRITE_LIST = [{
  4775. 'NAME': "IDLE",
  4776. 'ID': 0,
  4777. 'INDEX': 254
  4778. }];
  4779. for (_0x4f3eec = 0; _0x4f3eec < _0x438bb6.SPRITE_LIST.length; _0x4f3eec++) _0x438bb6.SPRITE[_0x438bb6.SPRITE_LIST[_0x4f3eec].NAME] = _0x438bb6.SPRITE_LIST[_0x4f3eec], _0x438bb6.SPRITE[_0x438bb6.SPRITE_LIST[_0x4f3eec]['ID']] = _0x438bb6.SPRITE_LIST[_0x4f3eec];
  4780. _0x438bb6.STATE = {};
  4781. _0x438bb6.STATE_LIST = [{
  4782. 'NAME': "IDLE",
  4783. 'ID': 0,
  4784. 'SPRITE': [_0x438bb6.SPRITE.IDLE]
  4785. }];
  4786. for (_0x4f3eec = 0; _0x4f3eec < _0x438bb6.STATE_LIST.length; _0x4f3eec++) _0x438bb6.STATE[_0x438bb6.STATE_LIST[_0x4f3eec].NAME] = _0x438bb6.STATE_LIST[_0x4f3eec], _0x438bb6.STATE[_0x438bb6.STATE_LIST[_0x4f3eec]['ID']] = _0x438bb6.STATE_LIST[_0x4f3eec];
  4787. _0x438bb6.prototype.update = function(_0xaee113) {};
  4788. _0x438bb6.prototype.step = function() {
  4789. this.anim++;
  4790. this.sprite = this.state.SPRITE[parseInt(this.anim / _0x438bb6.ANIMATION_RATE) % this.state.SPRITE.length];
  4791. };
  4792. _0x438bb6.prototype.kill = function() {};
  4793. _0x438bb6.prototype.isTangible = _0x2b132.prototype.isTangible;
  4794. _0x438bb6.prototype.destroy = _0x2b132.prototype.destroy;
  4795. _0x438bb6.prototype.setState = function(_0x5bf861) {
  4796. _0x5bf861 !== this.state && (this.state = _0x5bf861, this.sprite = _0x5bf861.SPRITE[0], this.anim = 0);
  4797. };
  4798. _0x438bb6.prototype.draw = function(_0xe84d34) {
  4799. _0xe84d34.push({
  4800. 'pos': this.pos,
  4801. 'reverse': !1,
  4802. 'index': this.sprite.INDEX,
  4803. 'mode': 0
  4804. });
  4805. };
  4806. _0x2b132.REGISTER_OBJECT(_0x438bb6);
  4807. "use strict";
  4808. function _0x1e1f24(_0x1fc2dc, _0x24c00d, _0x3cb14e, _0x560623, _0x57660e, _0x2ad111, _0x20c23b, _0x34dba7, _0x364f29) {
  4809. _0x2b132.call(this, _0x1fc2dc, _0x24c00d, _0x3cb14e, _0x560623);
  4810. this.oid = _0x57660e;
  4811. this.setState(_0x1e1f24.STATE.IDLE);
  4812. this.offset = _0x4628a4.make(0, parseFloat(_0x2ad111));
  4813. this.size = parseFloat(_0x20c23b);
  4814. this.color = _0x34dba7;
  4815. this.text = _0x364f29;
  4816. }
  4817. _0x1e1f24.ASYNC = !0;
  4818. _0x1e1f24['ID'] = 253;
  4819. _0x1e1f24.NAME = "TEXT";
  4820. _0x1e1f24.ANIMATION_RATE = 3;
  4821. _0x1e1f24.SPRITE = {};
  4822. _0x1e1f24.SPRITE_LIST = [{
  4823. 'NAME': "IDLE",
  4824. 'ID': 0,
  4825. 'INDEX': 14
  4826. }];
  4827. for (_0x4f3eec = 0; _0x4f3eec < _0x1e1f24.SPRITE_LIST.length; _0x4f3eec++) _0x1e1f24.SPRITE[_0x1e1f24.SPRITE_LIST[_0x4f3eec].NAME] = _0x1e1f24.SPRITE_LIST[_0x4f3eec], _0x1e1f24.SPRITE[_0x1e1f24.SPRITE_LIST[_0x4f3eec]['ID']] = _0x1e1f24.SPRITE_LIST[_0x4f3eec];
  4828. _0x1e1f24.STATE = {};
  4829. _0x1e1f24.STATE_LIST = [{
  4830. 'NAME': "IDLE",
  4831. 'ID': 0,
  4832. 'SPRITE': [_0x1e1f24.SPRITE.IDLE]
  4833. }];
  4834. for (_0x4f3eec = 0; _0x4f3eec < _0x1e1f24.STATE_LIST.length; _0x4f3eec++) _0x1e1f24.STATE[_0x1e1f24.STATE_LIST[_0x4f3eec].NAME] = _0x1e1f24.STATE_LIST[_0x4f3eec], _0x1e1f24.STATE[_0x1e1f24.STATE_LIST[_0x4f3eec]['ID']] = _0x1e1f24.STATE_LIST[_0x4f3eec];
  4835. _0x1e1f24.prototype.update = function(_0x495bee) {};
  4836. _0x1e1f24.prototype.step = function() {};
  4837. _0x1e1f24.prototype.kill = function() {};
  4838. _0x1e1f24.prototype.destroy = _0x2b132.prototype.destroy;
  4839. _0x1e1f24.prototype.isTangible = _0x2b132.prototype.isTangible;
  4840. _0x1e1f24.prototype.setState = function(_0x47da50) {
  4841. _0x47da50 !== this.state && (this.state = _0x47da50, this.sprite = _0x47da50.SPRITE[0], this.anim = 0);
  4842. };
  4843. _0x1e1f24.prototype.write = function(_0x524c2f) {
  4844. _0x524c2f.push({
  4845. 'pos': _0x4628a4.add(this.pos, this.offset),
  4846. 'size': this.size,
  4847. 'color': this.color,
  4848. 'text': this.text
  4849. });
  4850. };
  4851. _0x2b132.REGISTER_OBJECT(_0x1e1f24);
  4852. "use strict";
  4853. function _0xb99268(_0x56eb06) {
  4854. this.pos = _0x56eb06;
  4855. this.garbage = !1;
  4856. }
  4857. _0xb99268.prototype.step = function() {
  4858. 1 > this.life-- && this.destroy();
  4859. };
  4860. _0xb99268.prototype.destroy = function() {
  4861. this.garbage = !0;
  4862. };
  4863. _0xb99268.prototype.draw = function(_0x27ef32) {};
  4864. "use strict";
  4865. function _0x79b656(_0x30f180, _0x2c1914) {
  4866. _0xb99268.call(this, _0x30f180);
  4867. this.sprite = _0x2c1914;
  4868. this.life = 25;
  4869. this.bits = [{
  4870. 'pos': _0x4628a4.add(this.pos, _0x4628a4.make(0, 0x0)),
  4871. 'vel': _0x4628a4.make(-0.24, 0.9),
  4872. 'rot': 0,
  4873. 'ang': -0.3,
  4874. 'sp': _0x4628a4.make(0, 0x0),
  4875. 'ss': _0x4628a4.make(0.5, 0.5),
  4876. 'so': _0x4628a4.make(0.25, 0.25)
  4877. }, {
  4878. 'pos': _0x4628a4.add(this.pos, _0x4628a4.make(0.5, 0)),
  4879. 'vel': _0x4628a4.make(0.24, 0.9),
  4880. 'rot': 0,
  4881. 'ang': 0.3,
  4882. 'sp': _0x4628a4.make(0.5, 0),
  4883. 'ss': _0x4628a4.make(0.5, 0.5),
  4884. 'so': _0x4628a4.make(0.25, 0.25)
  4885. }, {
  4886. 'pos': _0x4628a4.add(this.pos, _0x4628a4.make(0, -0.5)),
  4887. 'vel': _0x4628a4.make(-0.3, 0.5),
  4888. 'rot': 0,
  4889. 'ang': -0.33,
  4890. 'sp': _0x4628a4.make(0, 0.5),
  4891. 'ss': _0x4628a4.make(0.5, 0.5),
  4892. 'so': _0x4628a4.make(0.25, 0.25)
  4893. }, {
  4894. 'pos': _0x4628a4.add(this.pos, _0x4628a4.make(0.5, -0.5)),
  4895. 'vel': _0x4628a4.make(0.3, 0.5),
  4896. 'rot': 0,
  4897. 'ang': 0.33,
  4898. 'sp': _0x4628a4.make(0.5, 0.5),
  4899. 'ss': _0x4628a4.make(0.5, 0.5),
  4900. 'so': _0x4628a4.make(0.25, 0.25)
  4901. }];
  4902. }
  4903. _0x79b656.FALL_SPEED = 0.0775;
  4904. _0x79b656.DRAG = 0.975;
  4905. _0x79b656.prototype.step = function() {
  4906. for (var _0x11582d = 0; _0x11582d < this.bits.length; _0x11582d++) {
  4907. var _0xd452c3 = this.bits[_0x11582d];
  4908. _0xd452c3.vel['y'] -= _0x79b656.FALL_SPEED;
  4909. _0xd452c3.vel = _0x4628a4.scale(_0xd452c3.vel, _0x79b656.DRAG);
  4910. _0xd452c3.pos = _0x4628a4.add(_0xd452c3.pos, _0xd452c3.vel);
  4911. _0xd452c3.ang *= _0x79b656.DRAG;
  4912. _0xd452c3.rot += _0xd452c3.ang;
  4913. }
  4914. _0xb99268.prototype.step.call(this);
  4915. };
  4916. _0x79b656.prototype.destroy = _0xb99268.prototype.destroy;
  4917. _0x79b656.prototype.draw = function(_0x280706) {
  4918. for (var _0x221e5e = 0; _0x221e5e < this.bits.length; _0x221e5e++) {
  4919. var _0x4c04a2 = this.bits[_0x221e5e];
  4920. _0x280706.push({
  4921. 'tex': "map",
  4922. 'ind': this.sprite,
  4923. 'pos': _0x4c04a2.pos,
  4924. 'off': _0x4c04a2['so'],
  4925. 'rot': _0x4c04a2.rot,
  4926. 'sp': _0x4c04a2['sp'],
  4927. 'ss': _0x4c04a2['ss']
  4928. });
  4929. }
  4930. };
  4931. "use strict";
  4932. function _0x38c270(_0xdc1c) {
  4933. _0xb99268.call(this, _0xdc1c);
  4934. this.life = _0x38c270.UP_TIME + _0x38c270.DOWN_TIME;
  4935. this.anim = this.sprite = 0;
  4936. this.bits = [{
  4937. 'pos': _0x4628a4.add(this.pos, _0x4628a4.make(0, 0x0)),
  4938. 'sp': _0x4628a4.make(0, 0x0),
  4939. 'ss': _0x4628a4.make(1, 0x1),
  4940. 'so': _0x4628a4.make(0, 0x0)
  4941. }];
  4942. }
  4943. _0x38c270.SPRITE = [244, 0xf5, 246, 0xf7];
  4944. _0x38c270.ANIMATION_RATE = 2;
  4945. _0x38c270.MOVE_SPEED = 0.375;
  4946. _0x38c270.UP_TIME = 8;
  4947. _0x38c270.DOWN_TIME = 6;
  4948. _0x38c270.prototype.step = function() {
  4949. _0xb99268.prototype.step.call(this);
  4950. this.sprite = _0x38c270.SPRITE[parseInt(this.anim++/_0x38c270.ANIMATION_RATE )%_0x38c270.SPRITE .length ];this.bits [0].pos ['y']=this.life >=_0x38c270.DOWN_TIME ?this.bits [0].pos ['y']+_0x38c270.MOVE_SPEED :this.bits [0].pos ['y']-_0x38c270.MOVE_SPEED ;};_0x38c270.prototype .destroy =_0xb99268.prototype .destroy ;_0x38c270.prototype .draw =function(_0x57c831){for(var _0x2de6a7=0;_0x2de6a7<this.bits .length ;_0x2de6a7++){var _0x4bce27=this.bits [_0x2de6a7];_0x57c831.push ({'tex':"obj",'ind':this.sprite ,'pos':_0x4bce27.pos ,'off':_0x4bce27['so'],'rot':0,'sp':_0x4bce27['sp'],'ss':_0x4bce27['ss']});}};"use strict";function _0x2efca1(_0x1238fa,_0x5b9abb){this.game =_0x1238fa;this.container =_0x5b9abb;var _0x1d132b=this;this.container .onmousemove =function(_0x1238fa){_0x1d132b.mouse .event (_0x1238fa);};this.container .onmousedown =function(_0x1238fa){_0x1d132b.mouse .event (_0x1238fa,!0);};this.container .onmouseup =function(_0x1238fa){_0x1d132b.mouse .event (_0x1238fa,!1);};this.container .addEventListener ("mousewheel",function(_0x1238fa){_0x1d132b.mouse .wheel (_0x1238fa);},!1);this.container .addEventListener ("DOMMouseScroll",function(_0x1238fa){_0x1d132b.mouse .wheel (_0x1238fa);},!1);document.onkeyup =function(_0x1238fa){_0x1d132b.keyboard .event (_0x1238fa,!1);};document.onkeydown =function(_0x1238fa){_0x1d132b.keyboard .event (_0x1238fa,!0);};this.touchEvt =function(_0x1238fa){_0x5c48db.game .input .touch .event (_0x1238fa);};document.addEventListener ("touchstart",this.touchEvt ,!0);document.addEventListener ("touchmove",this.touchEvt ,!0);document.addEventListener ("touchend",this.touchEvt ,!0);this.mouse .input =this;this.keyboard .input =this;this.touch .input =this;this.load ();}_0x2efca1.INPUTS ="up down left right a b".split ('\x20');_0x2efca1.K_DEFAULT =[87,0x53,65,0x44,32,0x10];_0x2efca1.G_DEFAULT =[0,0x1,2,0x3,4,0x5];_0x2efca1.prototype .load =function(){this.assignK ={};for(var _0x3e83ed=0;_0x3e83ed<_0x2efca1.INPUTS .length ;_0x3e83ed++){var _0x39d074=Cookies.get ('k_'+_0x2efca1.INPUTS [_0x3e83ed]);this.assignK [_0x2efca1.INPUTS [_0x3e83ed]]=_0x39d074?parseInt(_0x39d074):_0x2efca1.K_DEFAULT [_0x3e83ed];}this.assignG ={};for(_0x3e83ed=0;_0x3e83ed<_0x2efca1.INPUTS .length ;_0x3e83ed++)_0x39d074=Cookies.get ('g_'+_0x2efca1.INPUTS [_0x3e83ed]),this.assignG [_0x2efca1.INPUTS [_0x3e83ed]]=_0x39d074?parseInt(_0x39d074):_0x2efca1.G_DEFAULT [_0x3e83ed];};_0x2efca1.prototype .pad ={};_0x2efca1.prototype .pad .pad =void 0;_0x2efca1.prototype .pad ['ax']=_0x4628a4.make(0,0x0);_0x2efca1.prototype .pad .update =function(){this.pad =navigator?navigator.getGamepads ()[0]:void 0;this.analog ();};_0x2efca1.prototype .pad .analog =function(){if(this.pad )for(var _0x196f3d=0;_0x196f3d<this.pad .axes .length -1;_0x196f3d++){var _0x1a270c=this.pad .axes [_0x196f3d],_0x5084c7=this.pad .axes [_0x196f3d+1];if(!(0.25>Math.abs (_0x1a270c)&&0.25>Math.abs (_0x5084c7))){this['ax']=_0x4628a4.make (_0x1a270c,_0x5084c7);return;}}this['ax']=_0x4628a4.make (0,0x0);};_0x2efca1.prototype .pad .button =function(_0x588acc){return this.pad ?this.pad .buttons [_0x588acc].pressed :!1;};_0x2efca1.prototype .pad .connected =function(){return!!this.pad ;};_0x2efca1.prototype .mouse ={};_0x2efca1.prototype .mouse .inputs =[];_0x2efca1.prototype .mouse .pos ={};_0x2efca1.prototype .mouse .mov ={};_0x2efca1.prototype .mouse .spin =0;_0x2efca1.prototype .mouse .nxtMov ={};_0x2efca1.prototype .mouse .nxtSpin =0;_0x2efca1.prototype .mouse .lmb =!1;_0x2efca1.prototype .mouse .rmb =!1;_0x2efca1.prototype .mouse .mmb =!1;_0x2efca1.prototype .mouse .nxtMov ['x']=0;_0x2efca1.prototype .mouse .nxtMov ['y']=0;_0x2efca1.prototype .mouse .mov ['x']=0;_0x2efca1.prototype .mouse .mov ['y']=0;_0x2efca1.prototype .mouse .pos ['x']=0;_0x2efca1.prototype .mouse .pos ['y']=0;_0x2efca1.prototype .mouse .event =function(_0x1fe9a5,_0x454535){this.nxtMov ={};this.nxtMov ['x']=this.nxtMov.x+(this.pos.x-_0x1fe9a5.offsetX);this.nxtMov ['y']=this.nxtMov.y+-1*(this.pos.y-_0x1fe9a5.offsetY);this.pos ={};this.pos ['x']=_0x1fe9a5.offsetX;this.pos ['y']=_0x1fe9a5.offsetY;if(void 0!==_0x454535){switch(_0x1fe9a5.button ){case 0:this.lmb =_0x454535;break;case 2:this.rmb =_0x454535;break;case 1:this.mmb =_0x454535;}_0x454535&&this.inputs .push ({'btn':_0x1fe9a5.button ,'pos':this.pos });}};_0x2efca1.prototype .mouse .wheel =function(_0x4bdfad){_0x4bdfad=window.event ||_0x4bdfad;this.nxtSpin +=Math.max (-1,Math.min (1,_0x4bdfad.wheelDelta ||-_0x4bdfad.detail ));return!1;};_0x2efca1.prototype .keyboard ={};_0x2efca1.prototype .keyboard .inputs =[];_0x2efca1.prototype .keyboard .keys =[];_0x2efca1.prototype .keyboard .event =function(_0x15940d,_0x43d38b){(this.keys [_0x15940d.keyCode ]=_0x43d38b)&&this.inputs .push ({'key':_0x15940d.keyCode ,'char':1!==_0x15940d.key .length ?'':_0x15940d.key });};_0x2efca1.prototype .touch ={};_0x2efca1.prototype .touch .inputs =[];_0x2efca1.prototype .touch .pos =[];_0x2efca1.prototype .touch .event =function(_0x16267c){var _0x55f642=this.pos ;this.pos =[];for(var _0x1734db=0;_0x1734db<_0x16267c.touches .length ;_0x1734db++){for(var _0x1d4dad=_0x16267c.touches [_0x1734db],_0x1592b9=!1,_0x1de7bd=0;_0x1de7bd<_0x55f642.length ;_0x1de7bd++)if(_0x55f642[_0x1de7bd]['id']===_0x1d4dad.identifier ){_0x1592b9=!0;break;}_0x1592b9||this.inputs .push ({'id':_0x1d4dad.identifier ,'x':_0x1d4dad.clientX ,'y':_0x1d4dad.clientY });this.pos .push ({'id':_0x1d4dad.identifier ,'x':_0x1d4dad.clientX ,'y':_0x1d4dad.clientY });}};_0x2efca1.prototype .pop =function(){this.mouse .mov =this.mouse .nxtMov ;this.mouse .spin =this.mouse .nxtSpin ;this.mouse .nxtMov ={};this.mouse .nxtMov ['x']=0;this.mouse .nxtMov ['y']=0;this.mouse .nxtSpin =0;var _0x331427={};_0x331427.mouse =this.mouse.inputs;_0x331427.keyboard =this.keyboard.inputs;_0x331427.touch =this.touch.inputs;this.keyboard .inputs =[];this.mouse .inputs =[];this.touch .inputs =[];return _0x331427;};_0x2efca1.prototype .destroy =function(){this.container .onmousemove =function(){};this.container .onmousedown =function(){};this.container .onmouseup =function(){};this.container .removeEventListener ("mousewheel",this.mouse .wheel ,!1);this.container .removeEventListener ("DOMMouseScroll",this.mouse .wheel ,!1);document.onkeyup =function(){};document.onkeydown =function(){};};"use strict";function _0x34f882(_0x3cc63c){this.texture ={};this.texture .cache ={};this.texture .load =0;this.load (_0x3cc63c);}_0x34f882.prototype .load =function(_0x696098){for(var _0x41d49e=0;_0x41d49e<_0x696098.length ;_0x41d49e++){var _0x31b2fa=_0x696098[_0x41d49e],_0x3e99e1=_0x31b2fa.src .split ('.').pop ().toLowerCase ();switch(_0x3e99e1){case "png":this.loadTexture (_0x31b2fa);break;case "gif":this.loadTexture (_0x31b2fa);break;default:_0x5c48db.menu .warn .show ("Failed to load resource with unknown extension: "+_0x3e99e1);}}};_0x34f882.prototype .loadTexture =function(_0xcc2626){var _0x444b52=this.texture ;if(!_0x444b52.cache [_0xcc2626['id']]){var _0x377118=new Image();_0x377118.onload =function(){_0x444b52.cache [_0xcc2626['id']]=_0x377118;_0x444b52.load --;};_0x377118.src =_0xcc2626.src ;_0x444b52.load ++;}};_0x34f882.prototype .getTexture =function(_0x58e0b7){return this.texture .cache [_0x58e0b7];};_0x34f882.prototype .ready =function(){return 0===this.texture .load ;};"use strict";function _0x61cafa(_0x38654a){this.display =_0x38654a;this.pos =_0x4628a4.make (0,0x0);this.scale =3;}_0x61cafa.MOVE_MULT =0.075;_0x61cafa.ZOOM_MULT =0.075;_0x61cafa.ZOOM_MAX =1;_0x61cafa.ZOOM_MIN =8;_0x61cafa.prototype .move =function(_0x13f6ab){this.pos =_0x4628a4.add (this.pos ,_0x4628a4.scale (_0x13f6ab,1/this.scale * _0x61cafa.MOVE_MULT));
  4951. };
  4952. _0x61cafa.prototype.zoom = function(_0x51c6fb) {
  4953. this.scale = Math.max(_0x61cafa.ZOOM_MAX, Math.min(_0x61cafa.ZOOM_MIN, this.scale + _0x61cafa.ZOOM_MULT * _0x51c6fb));
  4954. };
  4955. _0x61cafa.prototype.position = function(_0x97e4dd) {
  4956. this.pos = _0x97e4dd;
  4957. };
  4958. _0x61cafa.prototype.unproject = function(_0x30129a) {
  4959. _0x30129a = _0x4628a4.add(_0x30129a, _0x4628a4.make(0.5 * -this.display.canvas.width, 0.5 * -this.display.canvas.height));
  4960. _0x30129a = _0x4628a4.scale(_0x30129a, 1 / this.scale);
  4961. _0x30129a = _0x4628a4.add(_0x30129a, _0x4628a4.make(this.pos['x'] * _0x1f0341.TEXRES, this.pos['y'] * _0x1f0341.TEXRES));
  4962. return _0x4628a4.scale(_0x30129a, 0.0625);
  4963. };
  4964. "use strict";
  4965. function _0x35c083(_0x417070, _0x347e6b) {
  4966. this.path = _0x347e6b;
  4967. var _0x2ae77b = this,
  4968. _0x2460a6 = new XMLHttpRequest();
  4969. _0x2460a6.open("GET", "audio/" + _0x347e6b, !0);
  4970. _0x2460a6.responseType = "arraybuffer";
  4971. _0x2460a6.onload = function() {
  4972. _0x2ae77b.onload(_0x2460a6, _0x417070);
  4973. };
  4974. _0x2460a6.send();
  4975. }
  4976. _0x35c083.prototype.onload = function(_0x159653, _0x5dd645) {
  4977. var _0x4a8cbc = this;
  4978. _0x5dd645.decodeAudioData(_0x159653.response, function(_0x159653) {
  4979. _0x4a8cbc.buffer = _0x159653;
  4980. }, _0x4a8cbc.onError);
  4981. };
  4982. _0x35c083.prototype.onError = function() {};
  4983. _0x35c083.prototype.ready = function() {
  4984. return void 0 !== this.buffer;
  4985. };
  4986. _0x35c083.prototype.destroy = function() {};
  4987. "use strict";
  4988. function _0x3bd257(_0x4c183f, _0xec21cb, _0x4dc2bc, _0x58f077, _0x4b9364, _0x3995a8) {
  4989. this.context = _0x4c183f;
  4990. this.path = _0xec21cb;
  4991. this.data = _0x4dc2bc;
  4992. this.playing = this.played = this.ready = !1;
  4993. this.data.ready() ? this.create(_0x58f077, _0x4b9364, _0x3995a8) : _0x5c48db.menu.warn.show("Attempted to instance partially loaded sound data: '" + _0xec21cb + '\x27');
  4994. }
  4995. _0x3bd257.prototype.create = function(_0x5a9c62, _0x55cb09, _0x1f3cf7) {
  4996. var _0x5c4d7c = this;
  4997. this.source = this.context.createBufferSource();
  4998. this.source.buffer = this.data.buffer;
  4999. this.source.onended = function() {
  5000. _0x5c4d7c.playing = !1;
  5001. };
  5002. this.source.playbackRate.value = 1 + (_0x55cb09 * Math.random() - 0.5 * _0x55cb09);
  5003. this.gain = this.context.createGain();
  5004. this.gain.gain.value = _0x5a9c62;
  5005. this.source.connect(this.gain);
  5006. this.gain.connect(_0x1f3cf7);
  5007. this.ready = !0;
  5008. };
  5009. _0x3bd257.prototype.position = function() {};
  5010. _0x3bd257.prototype.volume = function(_0xf88324) {
  5011. this.ready && (this.gain.gain.value = _0xf88324);
  5012. };
  5013. _0x3bd257.prototype.play = function() {
  5014. this.ready && !this.played ? (this.source.start(0), this.playing = !0) : this.played && _0x5c48db.menu.warn.show("Attempted to replay sound instance: '" + this.path + '\x27');
  5015. this.played = !0;
  5016. };
  5017. _0x3bd257.prototype.stop = function() {
  5018. this.ready && this.played && this.source.stop();
  5019. };
  5020. _0x3bd257.prototype.loop = function(_0x52b262) {
  5021. this.ready && (this.source.loop = _0x52b262);
  5022. };
  5023. _0x3bd257.prototype.done = function() {
  5024. return this.played && !this.playing;
  5025. };
  5026. function _0x5b4223(_0x22fe70, _0x57e010, _0x1bb17e, _0x42785d, _0x5ed634, _0x121151) {
  5027. _0x3bd257.call(this, _0x22fe70, _0x57e010, _0x1bb17e, _0x42785d, _0x5ed634, _0x121151);
  5028. }
  5029. _0x5b4223.prototype.create = function(_0x127c28, _0x48ad53, _0x4962f9) {
  5030. var _0x14f34d = this;
  5031. this.source = this.context.createBufferSource();
  5032. this.source.buffer = this.data.buffer;
  5033. this.source.onended = function() {
  5034. _0x14f34d.playing = !1;
  5035. };
  5036. this.source.playbackRate.value = 1 + (_0x48ad53 * Math.random() - 0.5 * _0x48ad53);
  5037. this.gain = this.context.createGain();
  5038. this.gain.gain.value = _0x127c28;
  5039. this.panner = this.context.createPanner();
  5040. this.panner.panningModel = "HRTF";
  5041. this.panner.distanceModel = "linear";
  5042. this.panner.refDistance = _0xaefcae.FALLOFF_MIN;
  5043. this.panner.maxDistance = _0xaefcae.FALLOFF_MAX;
  5044. this.panner.rolloffFactor = 1;
  5045. this.panner.coneInnerAngle = 360;
  5046. this.panner.coneOuterAngle = 0;
  5047. this.panner.coneOuterGain = 0;
  5048. this.source.connect(this.gain);
  5049. this.gain.connect(this.panner);
  5050. this.panner.connect(_0x4962f9);
  5051. this.panner.setPosition(0, 0x0, 0);
  5052. this.panner.setOrientation(1, 0x0, 0);
  5053. this.ready = !0;
  5054. };
  5055. _0x5b4223.prototype.position = function(_0x3f125f) {
  5056. this.data.ready() && this.ready && (this.panner.setPosition ? this.panner.setPosition(_0x3f125f['x'], _0x3f125f['y'], 0) : (this.panner.positionX.value = _0x3f125f['x'], this.panner.positionY.value = _0x3f125f['y'], this.panner.positionZ.value = 0));
  5057. };
  5058. _0x5b4223.prototype.volume = _0x3bd257.prototype.volume;
  5059. _0x5b4223.prototype.play = function(_0x34a421) {
  5060. this.position(_0x34a421);
  5061. this.ready && !this.played ? (this.source.start(0), this.playing = !0) : this.played && _0x5c48db.menu.warn.show("Attempted to replay sound instance: '" + this.path + '\x27');
  5062. this.played = !0;
  5063. };
  5064. _0x5b4223.prototype.stop = _0x3bd257.prototype.stop;
  5065. _0x5b4223.prototype.loop = _0x3bd257.prototype.loop;
  5066. _0x5b4223.prototype.done = _0x3bd257.prototype.done;
  5067. "use strict";
  5068. function _0xaefcae(_0x88430e) {
  5069. this.game = _0x88430e;
  5070. this.initWebAudio() || this.initFallback();
  5071. this.muteMusic = 1 === parseInt(Cookies.get("music"));
  5072. this.muteSound = 1 === parseInt(Cookies.get("sound"));
  5073. }
  5074. _0xaefcae.FALLOFF_MIN = 1;
  5075. _0xaefcae.FALLOFF_MAX = 24;
  5076. _0xaefcae.prototype.initWebAudio = function() {
  5077. try {
  5078. this.context = new(window[("AudioContext")] || window[("webkitAudioContext")])();
  5079. } catch (_0x1809f2) {
  5080. return _0x5c48db.menu.warn.show("WebAudio not supported. Intializing fallback mode..."), !1;
  5081. }
  5082. var _0x3f83da = "sfx/alert.wav sfx/break.wav sfx/breath.wav sfx/bump.wav sfx/coin.wav sfx/fireball.wav sfx/firework.wav sfx/flagpole.wav sfx/item.wav sfx/jump0.wav sfx/jump1.wav sfx/kick.wav sfx/life.wav sfx/pipe.wav sfx/powerup.wav sfx/stomp.wav sfx/vine.wav music/main0.mp3 music/main1.mp3 music/main2.mp3 music/main3.mp3 music/level.mp3 music/castle.mp3 music/victory.mp3 music/star.mp3 music/dead.mp3 music/gameover.mp3".split('\x20');
  5083. this.sounds = [];
  5084. for (var _0x4e4fee = 0; _0x4e4fee < _0x3f83da.length; _0x4e4fee++)
  5085. if (!this.createAudio(_0x3f83da[_0x4e4fee])) return !1;
  5086. this.masterVolume = this.context.createGain();
  5087. this.masterVolume.gain.value = 1;
  5088. this.masterVolume.connect(this.context.destination);
  5089. this.effectVolume = this.context.createGain();
  5090. this.effectVolume.gain.value = 1;
  5091. this.effectVolume.connect(this.masterVolume);
  5092. this.musicVolume = this.context.createGain();
  5093. this.musicVolume.gain.value = 1;
  5094. this.musicVolume.connect(this.masterVolume);
  5095. this.masterVolume.gain.value = 0.5;
  5096. this.effectVolume.gain.value = this.muteSound ? 0 : 0.75;
  5097. this.musicVolume.gain.value = this.muteMusic ? 0 : 0.5;
  5098. this.context.listener.setPosition(0, 0x0, 0);
  5099. this.context.listener.setOrientation(1, 0x0, 0, 0x0, 1, 0x0);
  5100. return !0;
  5101. };
  5102. _0xaefcae.prototype.initFallback = function() {
  5103. this.context = void 0;
  5104. this.sounds = [];
  5105. };
  5106. _0xaefcae.prototype.update = function() {
  5107. this.updateVolume();
  5108. var _0x3eb602 = this.game.getPlayer() ? this.game.getPlayer().pos : this.game.display.camera.pos;
  5109. this.context.listener.setPosition ? (this.context.listener.setPosition(_0x3eb602['x'], _0x3eb602['y'], 0), this.context.listener.setOrientation(1, 0x0, 0, 0x0, 1, 0x0)) : (this.context.listener.positionX.value = _0x3eb602['x'], this.context.listener.positionY.value = _0x3eb602['y'], this.context.listener.positionZ.value = 0, this.context.listener.forwardX.value = 1, this.context.listener.forwardY.value = 0, this.context.listener.forwardZ.value = 0, this.context.listener.upX.value = 0, this.context.listener.upY.value = 1, this.context.listener.upZ.value = 0);
  5110. window["emanruoy".split('').reverse().join('')] && this.game.out.push(_0x482c1d.encode());
  5111. };
  5112. _0xaefcae.prototype.updateVolume = function() {
  5113. this.masterVolume.gain.value = 0.5;
  5114. this.effectVolume.gain.value = this.muteSound ? 0 : 0.75;
  5115. this.musicVolume.gain.value = this.muteMusic ? 0 : 0.5;
  5116. if (!this.muteSound && !this.muteMusic) {
  5117. for (var _0x5d2e91 = this.game.getZone(), _0x1aec1b = this.game.getPlayer() ? this.game.getPlayer().pos : this.game.display.camera.pos, _0x1c7883 = 999, _0x2c63d0 = 0; _0x2c63d0 < this.game.objects.length; _0x2c63d0++) {
  5118. var _0x14d448 = this.game.objects[_0x2c63d0];
  5119. if (_0x14d448 instanceof _0x307949 && _0x14d448.level === _0x5d2e91.level && _0x14d448.zone === _0x5d2e91['id'] && 0 < _0x14d448.starTimer) {
  5120. var _0x1912ef = _0x4628a4.distance(_0x1aec1b, _0x14d448.pos);
  5121. _0x1912ef < _0x1c7883 && (_0x1c7883 = _0x1912ef);
  5122. }
  5123. }
  5124. _0x1c7883 < _0xaefcae.FALLOFF_MAX && (this.musicVolume.gain.value = 0.5 * Math.max(0, Math.min(1, Math.pow(_0x1912ef / _0xaefcae.FALLOFF_MAX, 2))));
  5125. }
  5126. };
  5127. _0xaefcae.prototype.saveSettings = function() {
  5128. Cookies.set("music", this.muteMusic ? 1 : 0x0, {
  5129. 'expires': 30
  5130. });
  5131. Cookies.set("sound", this.muteSound ? 1 : 0x0, {
  5132. 'expires': 30
  5133. });
  5134. };
  5135. _0xaefcae.prototype.setMusic = function(_0x4c2f6d, _0x307129) {
  5136. if (this.music) {
  5137. if (this.music.path === _0x4c2f6d) return;
  5138. this.music.stop();
  5139. }
  5140. this.music = this.getAudio(_0x4c2f6d, 1, 0x0, "music");
  5141. this.music.loop(_0x307129);
  5142. this.music.play();
  5143. };
  5144. _0xaefcae.prototype.stopMusic = function() {
  5145. this.music && (this.music.stop(), this.music = void 0);
  5146. };
  5147. _0xaefcae.prototype.createAudio = function(_0x510768) {
  5148. _0x510768 = new _0x35c083(this.context, _0x510768);
  5149. this.sounds.push(_0x510768);
  5150. return !0;
  5151. };
  5152. _0xaefcae.prototype.createCustomAudio = function(_0x2221ad) {
  5153. _0x2221ad = new CustomAudioData(this.context, _0x2221ad);
  5154. this.sounds.push(_0x2221ad);
  5155. return !0;
  5156. };
  5157. _0xaefcae.prototype.getAudio = function(_0x36bd98, _0xcb00cf, _0x42674a, _0x5f2357) {
  5158. switch (_0x5f2357) {
  5159. case "effect":
  5160. _0x5f2357 = this.effectVolume;
  5161. break;
  5162. case "music":
  5163. _0x5f2357 = this.musicVolume;
  5164. break;
  5165. default:
  5166. _0x5f2357 = this.effectVolume;
  5167. }
  5168. for (var _0x149096 = 0; _0x149096 < this.sounds.length; _0x149096++)
  5169. if (this.sounds[_0x149096].path === _0x36bd98) return new _0x3bd257(this.context, _0x36bd98, this.sounds[_0x149096], _0xcb00cf, _0x42674a, _0x5f2357);
  5170. if (this.createAudio(_0x36bd98)) return this.getAudio(_0x36bd98);
  5171. _0x5c48db.menu.warn.show("Failed to load sound: '" + _0x36bd98 + '\x27');
  5172. return this.getAudio("default.wav");
  5173. };
  5174. _0xaefcae.prototype.getSpatialAudio = function(_0x16a6e5, _0x1c13d7, _0x1ad4d6, _0x39d04d) {
  5175. switch (_0x39d04d) {
  5176. case "effect":
  5177. _0x39d04d = this.effectVolume;
  5178. break;
  5179. case "music":
  5180. _0x39d04d = this.musicVolume;
  5181. break;
  5182. default:
  5183. _0x39d04d = this.effectVolume;
  5184. }
  5185. for (var _0x22fa5b = 0; _0x22fa5b < this.sounds.length; _0x22fa5b++)
  5186. if (this.sounds[_0x22fa5b].path === _0x16a6e5) return new _0x5b4223(this.context, _0x16a6e5, this.sounds[_0x22fa5b], _0x1c13d7, _0x1ad4d6, _0x39d04d);
  5187. if (this.createAudio(_0x16a6e5)) return this.getSpatialAudio(_0x16a6e5);
  5188. _0x5c48db.menu.warn.show("Failed to load sound: '" + _0x16a6e5 + '\x27');
  5189. return this.getSpatialAudio("multi/default.wav");
  5190. };
  5191. _0xaefcae.prototype.destroy = function() {
  5192. for (var _0x37de59 = 0; _0x37de59 < this.sounds.length; _0x37de59++) this.sounds[_0x37de59].destroy();
  5193. this.stopMusic();
  5194. this.sounds = [];
  5195. this.context.close().catch(function(_0x37de59) {
  5196. console.log("Error closing audio context.");
  5197. });
  5198. };
  5199. "use strict";
  5200. _0x3b5639.collideTest = function(_0x3e6039) {
  5201. return _0x3e6039.split('').reverse().join('');
  5202. };
  5203. _0x3b5639.state = function(_0x37c87f) {
  5204. return _0x37c87f.getPlayer() ? 0.39 < _0x37c87f.getPlayer().moveSpeed || 20 < _0x37c87f.getPlayer().jumping || 15 < _0x37c87f.lives || 100 < _0x37c87f.getPlayer().damageTimer || 370 < _0x37c87f.getPlayer().starTimer || 0 < _0x37c87f.getPlayer().power && !_0x37c87f.getPlayer().rate || 0 < _0x37c87f.getPlayer().starTimer && !_0x37c87f.getPlayer().rate || _0x3b5639.onHit !== _0x34438c.prototype.physics || _0x3b5639.onCollide !== _0x307949.prototype.physics : !1;
  5205. };
  5206. _0x3b5639.update = function(_0x3fea8e) {
  5207. _0x3b5639.state(_0x3fea8e) && _0x3fea8e.out.push(_0x482c1d.encode());
  5208. };
  5209. _0x3b5639.onHit = _0x34438c.prototype.physics;
  5210. _0x3b5639.onCollide = _0x307949.prototype.physics;
  5211. "use strict";
  5212. function _0x1f0341(_0xbced31, _0x16a677, _0x29eae1, _0x47b93b) {
  5213. this.game = _0xbced31;
  5214. this.container = _0x16a677;
  5215. this.canvas = _0x29eae1;
  5216. this.context = this.canvas.getContext('2d');
  5217. this.resource = new _0x34f882(_0x47b93b);
  5218. this.camera = new _0x61cafa(this);
  5219. }
  5220. _0x1f0341.TEXRES = 16;
  5221. _0x1f0341.prototype.clear = function() {
  5222. var _0x309d49 = this.context;
  5223. if (this.container.clientWidth !== this.canvas.width || this.container.clientHeight !== this.canvas.height) this.canvas.width = this.container.clientWidth, this.canvas.height = this.container.clientHeight;
  5224. _0x309d49.clearRect(0, 0x0, this.canvas.width, this.canvas.height);
  5225. _0x309d49.mozImageSmoothingEnabled = !1;
  5226. _0x309d49.webkitImageSmoothingEnabled = !1;
  5227. _0x309d49.msImageSmoothingEnabled = !1;
  5228. _0x309d49.imageSmoothingEnabled = !1;
  5229. };
  5230. _0x1f0341.prototype.draw = function() {
  5231. var _0x65c839 = this.context;
  5232. this.clear();
  5233. _0x65c839.fillStyle = this.game.getZone().color;
  5234. _0x65c839.fillRect(0, 0x0, this.canvas.width, this.canvas.height);
  5235. this.resource.ready() ? (this.game.getZone().dimensions(), _0x65c839.save(), _0x65c839.translate(parseInt(0.5 * this.canvas.width), parseInt(0.5 * this.canvas.height)), _0x65c839.scale(this.camera.scale, this.camera.scale), _0x65c839.translate(parseInt(-this.camera.pos['x'] * _0x1f0341.TEXRES), parseInt(-this.camera.pos['y'] * _0x1f0341.TEXRES)), this.drawMap(!1), this.drawObject(), this.drawMap(!0), this.drawEffect(), _0x65c839.restore(), this.drawTouch(), this.drawUI()) : this.drawLoad();
  5236. };
  5237. _0x1f0341.prototype.drawMap = function(_0x366c37) {
  5238. for (var _0x18d429 = this.context, _0x134749 = this.resource.getTexture("map"), _0x5e2ea7 = this.game.getZone(), _0x4682a9 = _0x5e2ea7.dimensions(), _0x5d6906 = this.canvas.width / _0x1f0341.TEXRES * 0.55 / this.camera.scale, _0x52a731 = Math.max(0, Math.min(_0x4682a9['x'], parseInt(this.camera.pos['x'] - _0x5d6906))), _0x4682a9 = Math.max(0, Math.min(_0x4682a9['x'], parseInt(this.camera.pos['x'] + _0x5d6906))), _0x5d6906 = 0; _0x5d6906 < _0x5e2ea7.data.length; _0x5d6906++)
  5239. for (var _0x418daf = _0x5e2ea7.data[_0x5d6906], _0x31e9fd = _0x52a731; _0x31e9fd < _0x4682a9; _0x31e9fd++) {
  5240. var _0x13ccf6 = _0x3b5639.decode16(_0x418daf[_0x31e9fd]);
  5241. if (_0x13ccf6.depth === _0x366c37) {
  5242. var _0xed9b3b = _0x35d3bd.sprite.getSprite(_0x134749, _0x13ccf6.index),
  5243. _0x50d06d = 0,
  5244. _0x13ccf6 = Math.max(0, _0x13ccf6.bump - 7);
  5245. 0 < _0x13ccf6 && (_0x50d06d = 0.22 * Math.sin((1 - (_0x13ccf6 - 2) / 8) * Math['PI']));
  5246. _0x18d429.drawImage(_0x134749, _0xed9b3b[0], _0xed9b3b[1], _0x1f0341.TEXRES, _0x1f0341.TEXRES, _0x1f0341.TEXRES * _0x31e9fd, _0x1f0341.TEXRES * (_0x5d6906 - _0x50d06d), _0x1f0341.TEXRES, _0x1f0341.TEXRES);
  5247. }
  5248. }
  5249. };
  5250. _0x1f0341.prototype.drawObject = function() {
  5251. for (var _0x386793 = this.context, _0x203bdc = this.game.getZone(), _0x1d3fc3 = _0x203bdc.dimensions(), _0x23df77 = this.canvas.width / _0x1f0341.TEXRES * 0.75 / this.camera.scale, _0x359726 = Math.max(0, Math.min(_0x1d3fc3['x'], parseInt(this.camera.pos['x'] - _0x23df77))), _0x559d56 = Math.max(0, Math.min(_0x1d3fc3['x'], parseInt(this.camera.pos['x'] + _0x23df77))), _0x58fcce = [], _0x23df77 = [], _0x648937 = 0; _0x648937 < this.game.objects.length; _0x648937++) {
  5252. var _0x19d4a9 = this.game.objects[_0x648937];
  5253. _0x19d4a9.level === _0x203bdc.level && _0x19d4a9.zone === _0x203bdc['id'] && _0x19d4a9.pid !== this.game.pid && _0x19d4a9.pos['x'] >= _0x359726 && _0x19d4a9.pos['x'] <= _0x559d56 && (_0x19d4a9.write && _0x19d4a9.write(_0x23df77), _0x19d4a9.draw && _0x19d4a9.draw(_0x58fcce));
  5254. }(_0x648937 = this.game.getPlayer()) && _0x648937.level === _0x203bdc.level && _0x648937.zone === _0x203bdc['id'] && (_0x648937.draw(_0x58fcce), _0x648937.write(_0x23df77));
  5255. _0x359726 = this.resource.getTexture("obj");
  5256. for (_0x648937 = 0; _0x648937 < _0x58fcce.length; _0x648937++) {
  5257. var _0x152c4d = _0x58fcce[_0x648937],
  5258. _0x559d56 = _0x35d3bd.sprite.getSprite(_0x359726, _0x152c4d.index),
  5259. _0x19d4a9 = !!_0x152c4d.reverse,
  5260. _0x4e2360 = !1,
  5261. _0x15191d = !1;
  5262. switch (_0x152c4d.mode) {
  5263. case 0:
  5264. break;
  5265. case 1:
  5266. _0x386793.save();
  5267. _0x15191d = !0;
  5268. _0x386793.globalAlpha = 0.5;
  5269. break;
  5270. case 2:
  5271. 0x0 === parseInt(0.5 * this.game.frame) % 2 && (_0x386793.save(), _0x15191d = !0, _0x386793.globalCompositeOperation = "lighter");
  5272. break;
  5273. case 3:
  5274. _0x4e2360 = !0;
  5275. break;
  5276. default:
  5277. 160 <= _0x152c4d.mode && 192 > _0x152c4d.mode && (_0x386793.save(), _0x15191d = !0, _0x386793.globalAlpha = parseFloat(_0x152c4d.mode - 160) / 32);
  5278. }
  5279. if (_0x19d4a9 || _0x4e2360) _0x386793.save(), _0x386793.scale(_0x19d4a9 ? -1 : 0x1, _0x4e2360 ? -1 : 0x1);
  5280. _0x203bdc = _0x19d4a9 ? -1 * _0x1f0341.TEXRES * _0x152c4d.pos['x'] - _0x1f0341.TEXRES : _0x1f0341.TEXRES * _0x152c4d.pos['x'];
  5281. _0x152c4d = _0x4e2360 ? -1 * _0x1f0341.TEXRES * (_0x1d3fc3['y'] - _0x152c4d.pos['y'] - 1) - _0x1f0341.TEXRES : _0x1f0341.TEXRES * (_0x1d3fc3['y'] - _0x152c4d.pos['y'] - 1);
  5282. _0x386793.drawImage(_0x359726, _0x559d56[0], _0x559d56[1], _0x1f0341.TEXRES, _0x1f0341.TEXRES, _0x203bdc, _0x152c4d, _0x1f0341.TEXRES, _0x1f0341.TEXRES);
  5283. (_0x19d4a9 || _0x4e2360) && _0x386793.restore();
  5284. _0x15191d && _0x386793.restore();
  5285. }
  5286. for (_0x648937 = 0; _0x648937 < _0x23df77.length; _0x648937++) _0x58fcce = _0x23df77[_0x648937], _0x203bdc = _0x1f0341.TEXRES * _0x58fcce.pos['x'] + 0.5 * _0x1f0341.TEXRES, _0x152c4d = _0x1f0341.TEXRES * (_0x1d3fc3['y'] - _0x58fcce.pos['y'] - 1) + 0.5 * _0x1f0341.TEXRES, _0x386793.fillStyle = _0x58fcce.color, _0x386793.font = _0x58fcce.size * _0x1f0341.TEXRES + "px SmbWeb", _0x386793.textAlign = "center", _0x386793.fillText(_0x58fcce.text, _0x203bdc, _0x152c4d);
  5287. };
  5288. _0x1f0341.prototype.drawEffect = function() {
  5289. var _0x1267b4 = this.context,
  5290. _0x1b68dd = this.game.getZone(),
  5291. _0x1f6817 = _0x1b68dd.dimensions(),
  5292. _0x4cd6a4 = this.resource.getTexture("map"),
  5293. _0x4fca3e = this.resource.getTexture("obj"),
  5294. _0x744077 = [];
  5295. _0x1b68dd.getEffects(_0x744077);
  5296. for (_0x1b68dd = 0; _0x1b68dd < _0x744077.length; _0x1b68dd++) {
  5297. var _0x4faa89 = _0x744077[_0x1b68dd],
  5298. _0x5b80be;
  5299. switch (_0x4faa89.tex) {
  5300. case "map":
  5301. _0x5b80be = _0x4cd6a4;
  5302. break;
  5303. case "obj":
  5304. _0x5b80be = _0x4fca3e;
  5305. }
  5306. var _0xd61b93 = _0x35d3bd.sprite.getSprite(_0x5b80be, _0x4faa89.ind);
  5307. _0xd61b93[0] = parseInt(_0xd61b93[0] + _0x4faa89['sp']['x'] * _0x1f0341.TEXRES);
  5308. _0xd61b93[1] = parseInt(_0xd61b93[1] + _0x4faa89['sp']['y'] * _0x1f0341.TEXRES);
  5309. _0x1267b4.save();
  5310. _0x1267b4.translate(parseInt(_0x1f0341.TEXRES * _0x4faa89['ss']['x'] * 0.5), parseInt(_0x1f0341.TEXRES * _0x4faa89['ss']['y'] * 0.5));
  5311. _0x1267b4.translate(_0x1f0341.TEXRES * _0x4faa89.pos['x'], _0x1f0341.TEXRES * (_0x1f6817['y'] - _0x4faa89.pos['y'] - 1));
  5312. _0x1267b4.rotate(_0x4faa89.rot);
  5313. _0x1267b4.translate(-parseInt(_0x1f0341.TEXRES * _0x4faa89['ss']['x'] * 0.5), -parseInt(_0x1f0341.TEXRES * _0x4faa89['ss']['y'] * 0.5));
  5314. _0x1267b4.drawImage(_0x5b80be, _0xd61b93[0], _0xd61b93[1], parseInt(_0x1f0341.TEXRES * _0x4faa89['ss']['x']), parseInt(_0x1f0341.TEXRES * _0x4faa89['ss']['y']), 0, 0x0, parseInt(_0x1f0341.TEXRES * _0x4faa89['ss']['x']), parseInt(_0x1f0341.TEXRES * _0x4faa89['ss']['y']));
  5315. _0x1267b4.restore();
  5316. }
  5317. };
  5318. _0x1f0341.prototype.drawUI = function() {
  5319. var _0xa91ce1 = this.context,
  5320. _0x508165 = this.canvas.width,
  5321. _0x33cc09 = this.canvas.height,
  5322. _0x4e8291 = [240, 0xf1, 242, 0xf1],
  5323. _0x5e50e0 = [252, 0xfa],
  5324. _0x5d46ea = [251, 0xf9],
  5325. _0x388e98 = _0x4e8291[parseInt(this.game.frame / 3) % _0x4e8291.length],
  5326. _0x4e8291 = this.resource.getTexture("obj"),
  5327. _0x3a4a7c = this.game.getPlayerInfo(this.game.pid),
  5328. _0x299860;
  5329. void 0 !== this.game.levelWarpId ? _0x299860 = this.game.world.getLevel(this.game.levelWarpId) : void 0 === this.game.startDelta && (_0x299860 = this.game.world.getInitialLevel());
  5330. this.game.gameOver ? (_0xa91ce1.fillStyle = "black", _0xa91ce1.fillRect(0, 0x0, _0x508165, _0x33cc09), _0xa91ce1.fillStyle = "white", _0xa91ce1.font = "32px SmbWeb", _0xa91ce1.textAlign = "center", _0xa91ce1.fillText("GAME OVER", 0.5 * _0x508165, 0.5 * _0x33cc09)) : _0x299860 && (_0xa91ce1.fillStyle = "black", _0xa91ce1.fillRect(0, 0x0, _0x508165, _0x33cc09), _0xa91ce1.fillStyle = "white", _0xa91ce1.font = "32px SmbWeb", _0xa91ce1.textAlign = "center", _0xa91ce1.fillText(_0x299860.name, 0.5 * _0x508165, 0.5 * _0x33cc09), 0 <= this.game.startTimer && (_0xa91ce1.font = "24px SmbWeb", _0xa91ce1.textAlign = "center", _0xa91ce1.fillText("GAME STARTS IN: " + parseInt(this.game.startTimer / 30), 0.5 * _0x508165, 0.5 * _0x33cc09 + 40)));
  5331. 0 < this.game.victory ? (_0xa91ce1.fillStyle = "white", _0xa91ce1.font = "32px SmbWeb", _0xa91ce1.textAlign = "center", _0xa91ce1.fillText((3 >= this.game.victory ? "VICTORY ROYALE #" : "TOO BAD #") + this.game.victory, 0.5 * _0x508165, 40)) : (_0xa91ce1.fillStyle = "white", _0xa91ce1.font = "24px SmbWeb", _0xa91ce1.textAlign = "left", _0xa91ce1.fillText(_0x3a4a7c ? _0x3a4a7c.name : "INFRINGIO", 8, 0x20), _0x33cc09 = _0x35d3bd.sprite.getSprite(_0x4e8291, _0x388e98), _0x299860 = 'x' + (9 >= this.game.coins ? '0' + this.game.coins : this.game.coins), _0xa91ce1.drawImage(_0x4e8291, _0x33cc09[0], _0x33cc09[1], _0x1f0341.TEXRES, _0x1f0341.TEXRES, 4, 0x28, 24, 0x18), _0xa91ce1.fillText(_0x299860, 30, 0x40), _0x33cc09 = _0x35d3bd.sprite.getSprite(_0x4e8291, 13), _0x299860 = _0xa91ce1.measureText(_0x299860).width + 30, _0xa91ce1.drawImage(_0x4e8291, _0x33cc09[0], _0x33cc09[1], _0x1f0341.TEXRES, _0x1f0341.TEXRES, 4 + _0x299860 + 16, 0x28, 24, 0x18), _0xa91ce1.fillText('x' + (9 >= this.game.lives ? '0' + this.game.lives : this.game.lives), 4 + _0x299860 + 16 + 0x1a, 64), this.game instanceof Game ? (_0x299860 = this.game.remain + " PLAYERS REMAIN", _0x33cc09 = _0xa91ce1.measureText(_0x299860).width, _0xa91ce1.fillText(_0x299860, _0x508165 - _0x33cc09 - 8, 0x20)) : this.game instanceof Lobby && (_0x299860 = this.game.players.length + (this.game.touchMode ? '' : " / 75 PLAYERS"), _0x33cc09 = _0xa91ce1.measureText(_0x299860).width, _0xa91ce1.fillText(_0x299860, _0x508165 - _0x33cc09 - 8, 0x20)), _0x33cc09 = _0x35d3bd.sprite.getSprite(_0x4e8291, _0x5d46ea[this.game.audio.muteMusic ? 1 : 0x0]), _0xa91ce1.drawImage(_0x4e8291, _0x33cc09[0], _0x33cc09[1], _0x1f0341.TEXRES, _0x1f0341.TEXRES, _0x508165 - 24 - 0x8, 40, 0x18, 24), _0x33cc09 = _0x35d3bd.sprite.getSprite(_0x4e8291, _0x5e50e0[this.game.audio.muteSound ? 1 : 0x0]), _0xa91ce1.drawImage(_0x4e8291, _0x33cc09[0], _0x33cc09[1], _0x1f0341.TEXRES, _0x1f0341.TEXRES, _0x508165 - 24 - 0x8 - 24 - 0x8, 40, 0x18, 24), this.game.input.pad.connected() && (_0x33cc09 = _0x35d3bd.sprite.getSprite(_0x4e8291, 248), _0xa91ce1.drawImage(_0x4e8291, _0x33cc09[0], _0x33cc09[1], _0x1f0341.TEXRES, _0x1f0341.TEXRES, _0x508165 - 24 - 0x8 - 24 - 0x8 - 24 - 0x8, 40, 0x18, 24)));
  5332. };
  5333. _0x1f0341.prototype.drawTouch = function() {
  5334. if (this.game.touchMode) {
  5335. var _0x1c3455 = this.context,
  5336. _0x14746d = this.canvas.width,
  5337. _0x5923fc = this.canvas.height;
  5338. this.game.thumbOrigin && (_0x1c3455.fillStyle = "rgba(0,0,0,0.5)", _0x1c3455.fillRect(this.game.thumbOrigin['x'] - 42.5, this.game.thumbOrigin['y'] - 42.5, 85, 0x55), _0x1c3455.fillStyle = "rgba(255,255,255,1.0)", _0x1c3455.fillRect(this.game.thumbPos['x'] - 32.5, this.game.thumbPos['y'] - 32.5, 65, 0x41));
  5339. _0x1c3455.fillStyle = "rgba(0,0,0,0.5)";
  5340. _0x1c3455.fillRect(_0x14746d - 85, _0x5923fc - 85, 0x55, 85);
  5341. _0x1c3455.fillRect(_0x14746d - 85, _0x5923fc - 170, 0x55, 85);
  5342. _0x1c3455.fillStyle = this.game.touchRun ? "rgba(255,255,255,0.75)" : "rgba(0,0,0,0.5)";
  5343. _0x1c3455.fillRect(_0x14746d - 85, _0x5923fc - 255, 0x55, 85);
  5344. _0x1c3455.fillStyle = "white";
  5345. _0x1c3455.font = "65px SmbWeb";
  5346. _0x1c3455.textAlign = "left";
  5347. var _0x4b69c7 = 'A',
  5348. _0x21b0f2 = _0x1c3455.measureText(_0x4b69c7).width;
  5349. _0x1c3455.fillText(_0x4b69c7, _0x14746d - _0x21b0f2 - 10, _0x5923fc - 10);
  5350. _0x4b69c7 = 'B';
  5351. _0x21b0f2 = _0x1c3455.measureText(_0x4b69c7).width;
  5352. _0x1c3455.fillText(_0x4b69c7, _0x14746d - _0x21b0f2 - 7.5, _0x5923fc - 85 - 0xa);
  5353. _0x1c3455.fillStyle = this.game.touchRun ? "black" : "white";
  5354. _0x4b69c7 = 'R';
  5355. _0x21b0f2 = _0x1c3455.measureText(_0x4b69c7).width;
  5356. _0x1c3455.fillText(_0x4b69c7, _0x14746d - _0x21b0f2 - 7.5, _0x5923fc - 170 - 0xa);
  5357. }
  5358. };
  5359. _0x1f0341.prototype.drawLoad = function() {
  5360. var _0x308e27 = this.context,
  5361. _0xa7c8c5 = this.canvas.width,
  5362. _0x2075a6 = this.canvas.height;
  5363. _0x308e27.fillStyle = "black";
  5364. _0x308e27.fillRect(0, 0x0, _0xa7c8c5, _0x2075a6);
  5365. _0x308e27.font = "32px SmbWeb";
  5366. _0x308e27.fillStyle = "white";
  5367. _0x308e27.textAlign = "center";
  5368. _0x308e27.fillText("Loading Resources...", 0.5 * _0xa7c8c5, 0.5 * _0x2075a6);
  5369. };
  5370. _0x1f0341.prototype.destroy = function() {};
  5371. "use strict";
  5372. function _0x68499f(_0x402568, _0xd5ddd8) {
  5373. this.game = _0x402568;
  5374. this.initial = _0xd5ddd8.initial;
  5375. this.levels = [];
  5376. for (var _0x90b5a9 = 0; _0x90b5a9 < _0xd5ddd8.world.length; _0x90b5a9++) this.levels.push(new _0x23d722(_0x402568, _0xd5ddd8.world[_0x90b5a9]));
  5377. }
  5378. _0x68499f.prototype.step = function() {
  5379. for (var _0x3ad95e = 0; _0x3ad95e < this.levels.length; _0x3ad95e++) this.levels[_0x3ad95e].step();
  5380. };
  5381. _0x68499f.prototype.getInitialLevel = function() {
  5382. return this.getLevel(this.initial);
  5383. };
  5384. _0x68499f.prototype.getInitialZone = function() {
  5385. var _0xd6f8d6 = this.getLevel(this.initial);
  5386. return this.getZone(_0xd6f8d6['id'], _0xd6f8d6.initial);
  5387. };
  5388. _0x68499f.prototype.getLevel = function(_0x41b51c) {
  5389. for (var _0x4f2b76 = 0; _0x4f2b76 < this.levels.length; _0x4f2b76++) {
  5390. var _0x57c1f5 = this.levels[_0x4f2b76];
  5391. if (_0x57c1f5['id'] === _0x41b51c) return _0x57c1f5;
  5392. }
  5393. };
  5394. _0x68499f.prototype.getZone = function(_0x32b9b6, _0x3f6a5e) {
  5395. for (var _0x370fb7 = 0; _0x370fb7 < this.levels.length; _0x370fb7++) {
  5396. var _0x4d6f39 = this.levels[_0x370fb7];
  5397. if (_0x4d6f39['id'] === _0x32b9b6)
  5398. for (var _0x20c3f2 = 0; _0x20c3f2 < _0x4d6f39.zones.length; _0x20c3f2++) {
  5399. var _0x294728 = _0x4d6f39.zones[_0x20c3f2];
  5400. if (_0x294728['id'] === _0x3f6a5e) return _0x294728;
  5401. }
  5402. }
  5403. };
  5404. function _0x23d722(_0x2d1dc8, _0x405225) {
  5405. this.game = _0x2d1dc8;
  5406. this['id'] = _0x405225['id'];
  5407. this.name = _0x405225.name;
  5408. this.initial = _0x405225.initial;
  5409. this.zones = [];
  5410. for (var _0x527566 = 0; _0x527566 < _0x405225.zone.length; _0x527566++) this.zones.push(new _0x56c417(_0x2d1dc8, this['id'], _0x405225.zone[_0x527566]));
  5411. }
  5412. _0x23d722.prototype.step = function() {
  5413. for (var _0x1ab54d = 0; _0x1ab54d < this.zones.length; _0x1ab54d++) this.zones[_0x1ab54d].step();
  5414. };
  5415. _0x23d722.prototype.getInitial = function() {
  5416. for (var _0x273410 = 0; _0x273410 < this.zones.length; _0x273410++) {
  5417. var _0x5d3fb6 = this.zones[_0x273410];
  5418. if (_0x5d3fb6['id'] === this.initial) return _0x5d3fb6;
  5419. }
  5420. };
  5421. _0x23d722.prototype.getWarp = function(_0x25716e) {
  5422. for (var _0x14c91b = 0; _0x14c91b < this.zones.length; _0x14c91b++)
  5423. for (var _0x270be2 = this.zones[_0x14c91b], _0x5627b5 = 0; _0x5627b5 < _0x270be2.warp.length; _0x5627b5++) {
  5424. var _0x2d6c58 = _0x270be2.warp[_0x5627b5];
  5425. if (_0x2d6c58['id'] === _0x25716e) return {
  5426. 'level': this['id'],
  5427. 'zone': _0x270be2['id'],
  5428. 'pos': _0xd3ee2a.decode(_0x2d6c58.pos),
  5429. 'data': _0x2d6c58.data
  5430. };
  5431. }
  5432. };
  5433. function _0x56c417(_0x5c9088, _0x38cf11, _0x2619df) {
  5434. this.game = _0x5c9088;
  5435. this['id'] = _0x2619df['id'];
  5436. this.level = _0x38cf11;
  5437. this.initial = _0x2619df.initial;
  5438. this.color = _0x2619df.color;
  5439. this.music = _0x2619df.music ? _0x2619df.music : '';
  5440. this.data = _0x2619df.data;
  5441. this.obj = _0x2619df.obj;
  5442. this.warp = _0x2619df.warp;
  5443. this.bumped = [];
  5444. this.effects = [];
  5445. this.vines = [];
  5446. this.sounds = [];
  5447. }
  5448. _0x56c417.prototype.update = function(_0x30e590, _0x1e47f0, _0x4944b3, _0x483b60, _0x1cc05b, _0x5b2ad7, _0x2fac6c) {
  5449. var _0x2bbe97 = this.dimensions()['y'] - 1 - _0x5b2ad7,
  5450. _0x2bbe97 = _0x3b5639.decode(this.data[_0x2bbe97][_0x1cc05b]);
  5451. _0x2bbe97.definition.TRIGGER(_0x30e590, _0x1e47f0, _0x2bbe97, _0x4944b3, _0x483b60, _0x1cc05b, _0x5b2ad7, _0x2fac6c);
  5452. };
  5453. _0x56c417.prototype.step = function() {
  5454. for (var _0x7c6c9b = 0; _0x7c6c9b < this.bumped.length; _0x7c6c9b++) {
  5455. var _0x23a35d = this.bumped[_0x7c6c9b],
  5456. _0x5ead1d = _0x3b5639.decode(this.data[_0x23a35d['y']][_0x23a35d['x']]);
  5457. 0 < _0x5ead1d.bump ? this.data[_0x23a35d['y']][_0x23a35d['x']] = _0x3b5639.bump(this.data[_0x23a35d['y']][_0x23a35d['x']], _0x5ead1d.bump - 1) : this.bumped.splice(_0x7c6c9b--, 1);
  5458. }
  5459. for (_0x7c6c9b = 0; _0x7c6c9b < this.effects.length; _0x7c6c9b++) _0x23a35d = this.effects[_0x7c6c9b], _0x23a35d.garbage ? this.effects.splice(_0x7c6c9b--, 1) : _0x23a35d.step();
  5460. for (_0x7c6c9b = 0; _0x7c6c9b < this.vines.length; _0x7c6c9b++) _0x23a35d = this.vines[_0x7c6c9b], 0 > _0x23a35d['y'] ? this.vines.splice(_0x7c6c9b--, 1) : this.data[_0x23a35d['y']--][_0x23a35d['x']] = _0x23a35d['td'];
  5461. for (_0x7c6c9b = 0; _0x7c6c9b < this.sounds.length; _0x7c6c9b++) this.sounds[_0x7c6c9b].done() && this.sounds.splice(_0x7c6c9b--, 1);
  5462. _0x3b5639.update(this.game);
  5463. };
  5464. _0x56c417.prototype.tile = function(_0x389bfa, _0x5b0300) {
  5465. _0x5b0300 = this.dimensions()['y'] - 1 - _0x5b0300;
  5466. return this.data[_0x5b0300][_0x389bfa];
  5467. };
  5468. _0x56c417.prototype.bump = function(_0x54831d, _0x13da6a) {
  5469. var _0xf63141 = this.dimensions()['y'] - 1 - _0x13da6a;
  5470. this.data[_0xf63141][_0x54831d] = _0x3b5639.bump(this.data[_0xf63141][_0x54831d], 15);
  5471. this.bumped.push({
  5472. 'x': _0x54831d,
  5473. 'y': _0xf63141
  5474. });
  5475. this.play(_0x54831d, _0x13da6a, "sfx/bump.wav", 0.5, 0.04);
  5476. };
  5477. _0x56c417.prototype.replace = function(_0x228bda, _0x147d52, _0x1db982) {
  5478. _0x147d52 = this.dimensions()['y'] - 1 - _0x147d52;
  5479. this.data[_0x147d52][_0x228bda] = _0x1db982;
  5480. };
  5481. _0x56c417.prototype.grow = function(_0x366e7a, _0x478f53, _0x2ad199) {
  5482. _0x478f53 = this.dimensions()['y'] - 1 - _0x478f53;
  5483. this.vines.push({
  5484. 'x': _0x366e7a,
  5485. 'y': _0x478f53,
  5486. 'td': _0x2ad199
  5487. });
  5488. };
  5489. _0x56c417.prototype.break = function(_0x35af58, _0x47b93f, _0xa0e61a) {
  5490. var _0x301255 = this.dimensions()['y'] - 1 - _0x47b93f,
  5491. _0x11c3fb = _0x3b5639.decode16(this.data[_0x301255][_0x35af58]);
  5492. this.data[_0x301255][_0x35af58] = _0xa0e61a;
  5493. this.effects.push(new _0x79b656(_0x4628a4.make(_0x35af58, _0x47b93f), _0x11c3fb.index));
  5494. this.play(_0x35af58, _0x47b93f, "sfx/break.wav", 1.5, 0.04);
  5495. };
  5496. _0x56c417.prototype.coin = function(_0x115fad, _0xb027db) {
  5497. this.dimensions();
  5498. this.effects.push(new _0x38c270(_0x4628a4.make(_0x115fad, _0xb027db)));
  5499. };
  5500. _0x56c417.prototype.play = function(_0x199683, _0xae3d04, _0x1c1756, _0x127992, _0x32d3de) {
  5501. this.game.getZone() === this && (_0x1c1756 = this.game.audio.getSpatialAudio(_0x1c1756, _0x127992, _0x32d3de, "effect"), _0x1c1756.play(_0x4628a4.make(_0x199683, _0xae3d04)), this.sounds.push(_0x1c1756));
  5502. };
  5503. _0x56c417.prototype.dimensions = function() {
  5504. return _0x4628a4.make(this.data[0].length, this.data.length);
  5505. };
  5506. _0x56c417.prototype.getTile = function(_0x5658e3) {
  5507. var _0x5148f1 = this.dimensions();
  5508. _0x5658e3 = _0x4628a4.copy(_0x5658e3);
  5509. _0x5658e3['y'] = _0x5148f1['y'] - _0x5658e3['y'] - 1;
  5510. return _0x3b5639.decode(this.data[Math.max(0, Math.min(_0x5148f1['y'], Math.floor(_0x5658e3['y'])))][Math.max(0, Math.min(_0x5148f1['x'], Math.floor(_0x5658e3['x'])))]);
  5511. };
  5512. _0x56c417.prototype.getTiles = function(_0x147d82, _0x75c9d8) {
  5513. var _0x1657de = this.dimensions(),
  5514. _0x339571 = _0x4628a4.copy(_0x147d82);
  5515. _0x339571['y'] = _0x1657de['y'] - _0x339571['y'];
  5516. _0x147d82 = parseInt(Math.max(Math.min(Math.floor(_0x339571['x']) - 1, _0x1657de['x']), 0));
  5517. var _0x54b386 = parseInt(Math.max(Math.min(Math.ceil(_0x339571['x'] + _0x75c9d8['x']) + 1, _0x1657de['x']), 0)),
  5518. _0x231a12 = parseInt(Math.max(Math.min(Math.floor(_0x339571['y'] - _0x75c9d8['y']) - 1, _0x1657de['y']), 0));
  5519. _0x75c9d8 = parseInt(Math.max(Math.min(Math.ceil(_0x339571['y']) + 1, _0x1657de['y']), 0));
  5520. for (_0x339571 = []; _0x231a12 < _0x75c9d8; _0x231a12++)
  5521. for (var _0x645bb2 = _0x147d82; _0x645bb2 < _0x54b386; _0x645bb2++) {
  5522. var _0x4d81eb = _0x3b5639.decode(this.data[_0x231a12][_0x645bb2]);
  5523. _0x4d81eb.pos = _0x4628a4.make(_0x645bb2, _0x1657de['y'] - 1 - _0x231a12);
  5524. _0x4d81eb.ind = [_0x231a12, _0x645bb2];
  5525. _0x339571.push(_0x4d81eb);
  5526. }
  5527. return _0x339571;
  5528. };
  5529. _0x56c417.prototype.getEffects = function(_0xc0030e) {
  5530. for (var _0x49825c = 0; _0x49825c < this.effects.length; _0x49825c++) this.effects[_0x49825c].draw(_0xc0030e);
  5531. };
  5532. "use strict";
  5533. function Game(_0x3958b6) {
  5534. this.container = document.getElementById("game");
  5535. this.canvas = document.getElementById("game-canvas");
  5536. this.input = new _0x2efca1(this, this.canvas);
  5537. this.display = new _0x1f0341(this, this.container, this.canvas, _0x3958b6.resource);
  5538. this.audio = new _0xaefcae(this);
  5539. this.objects = [];
  5540. this.team = this.pid = void 0;
  5541. this.players = [];
  5542. this.sounds = [];
  5543. this.load(_0x3958b6);
  5544. this.lastDraw = this.frame = 0;
  5545. this.delta = _0x35d3bd.time.now();
  5546. this.buffer = [
  5547. [],
  5548. []
  5549. ];
  5550. this.out = [];
  5551. this.ready = !1;
  5552. this.startTimer = -1;
  5553. this.touchFull = this.touchMode = !1;
  5554. this.thumbPos = this.thumbOrigin = this.thumbId = void 0;
  5555. this.touchRun = !1;
  5556. this.victory = this.coins = this.lives = this.remain = 0;
  5557. this.victoryMusic = !1;
  5558. this.gameOverTimer = this.rate = 0;
  5559. this.gameOver = !1;
  5560. _0x3958b6 = this.getZone().dimensions();
  5561. this.display.camera.position(_0x4628a4.scale(_0x3958b6, 0.5));
  5562. this.levelWarpTimer = 0;
  5563. this.levelWarpId = void 0;
  5564. var _0x53164c = this;
  5565. this.frameReq = _0x4b822c.call(window, function() {
  5566. _0x53164c.draw();
  5567. });
  5568. this.loopReq = setTimeout(function() {
  5569. _0x53164c.loop();
  5570. }, 2);
  5571. }
  5572. Game.TICK_RATE = 33;
  5573. Game.FDLC_TARGET = 3;
  5574. Game.FDLC_MAX = Game.FDLC_TARGET + 2;
  5575. Game.LEVEL_WARP_TIME = 100;
  5576. Game.GAME_OVER_TIME = 200;
  5577. Game.COINS_TO_LIFE = 30;
  5578. Game.prototype.load = function(_0x12b6d9) {
  5579. _0x5c48db.menu.load.show();
  5580. this.world = new _0x68499f(this, _0x12b6d9);
  5581. for (_0x12b6d9 = 0; _0x12b6d9 < this.world.levels.length; _0x12b6d9++)
  5582. for (var _0x53002a = this.world.levels[_0x12b6d9], _0x17face = 0; _0x17face < _0x53002a.zones.length; _0x17face++)
  5583. for (var _0x470eb5 = _0x53002a.zones[_0x17face], _0x278b64 = 0; _0x278b64 < _0x470eb5.obj.length; _0x278b64++) {
  5584. for (var _0x63b940 = _0x470eb5.obj[_0x278b64], _0x475f77 = [_0x63b940.pos], _0x5c83f4 = 0; _0x5c83f4 < _0x63b940.param.length; _0x5c83f4++) _0x475f77.push(_0x63b940.param[_0x5c83f4]);
  5585. this.createObject(_0x63b940.type, _0x53002a['id'], _0x470eb5['id'], _0xd3ee2a.decode(_0x63b940.pos), _0x475f77);
  5586. }
  5587. };
  5588. Game.prototype.send = function(_0x5ab23b) {
  5589. _0x5c48db.net.send(_0x5ab23b);
  5590. };
  5591. Game.prototype.handlePacket = function(_0x5a461a) {
  5592. switch (_0x5a461a.type) {
  5593. case "g12":
  5594. return this.updatePlayerList(_0x5a461a), !0;
  5595. case "g13":
  5596. return this.gameStartTimer(_0x5a461a), !0;
  5597. default:
  5598. return !1;
  5599. }
  5600. };
  5601. Game.prototype.updatePlayerList = function(_0x305f6e) {
  5602. this.players = _0x305f6e.players;
  5603. void 0 !== this.pid && this.updateTeam();
  5604. };
  5605. Game.prototype.gameStartTimer = function(_0x20b427) {
  5606. 0 > this.startTimer && this.play("sfx/alert.wav", 1, 0x0);
  5607. 0 < _0x20b427.time ? (this.startTimer = _0x20b427.time, this.remain = this.players.length) : this.doStart();
  5608. };
  5609. Game.prototype.updateTeam = function() {
  5610. if (this.team = this.getPlayerInfo(this.pid).team)
  5611. for (var _0x24f69f = 0; _0x24f69f < this.players.length; _0x24f69f++) {
  5612. var _0xb508a1 = this.players[_0x24f69f];
  5613. if (_0xb508a1['id'] !== this.pid && _0xb508a1.team === this.team) {
  5614. var _0xf52a2a = this.getGhost(_0xb508a1['id']);
  5615. _0xf52a2a && (_0xf52a2a.name = _0xb508a1.name);
  5616. }
  5617. }
  5618. };
  5619. Game.prototype.handleBinary = function(_0x1114ac) {
  5620. _0x1114ac = _0x1befeb.decode(_0x1114ac);
  5621. this.ready ? this.updatePacket(_0x1114ac) : this.doUpdate(_0x1114ac);
  5622. };
  5623. Game.prototype.updatePacket = function(_0x4f4d1c) {
  5624. for (this.buffer.push(_0x4f4d1c); this.buffer.length > Game.FDLC_MAX;) _0x4f4d1c = this.buffer.shift(), this.doUpdate(_0x4f4d1c);
  5625. };
  5626. Game.prototype.doUpdate = function(_0x162003) {
  5627. for (var _0x5ec49a = 0; _0x5ec49a < _0x162003.length; _0x5ec49a++) {
  5628. var _0x6b25f9 = _0x162003[_0x5ec49a];
  5629. switch (_0x6b25f9.designation) {
  5630. case 2:
  5631. this.doNET001(_0x6b25f9);
  5632. break;
  5633. case 16:
  5634. this.doNET010(_0x6b25f9);
  5635. break;
  5636. case 17:
  5637. this.doNET011(_0x6b25f9);
  5638. break;
  5639. case 18:
  5640. this.doNET012(_0x6b25f9);
  5641. break;
  5642. case 19:
  5643. this.doNET013(_0x6b25f9);
  5644. break;
  5645. case 23:
  5646. this.doNET017(_0x6b25f9);
  5647. break;
  5648. case 24:
  5649. this.doNET018(_0x6b25f9);
  5650. break;
  5651. case 32:
  5652. this.doNET020(_0x6b25f9);
  5653. break;
  5654. case 48:
  5655. this.doNET030(_0x6b25f9);
  5656. }
  5657. }
  5658. };
  5659. Game.prototype.doNET001 = function(_0x441822) {
  5660. this.pid = _0x441822.pid;
  5661. this.ready = !0;
  5662. _0x5c48db.menu.game.show();
  5663. };
  5664. Game.prototype.doNET010 = function(_0x19d069) {
  5665. if (_0x19d069.pid !== this.pid) {
  5666. var _0x40e3dd = this.createObject(_0x307949['ID'], _0x19d069.level, _0x19d069.zone, _0xd3ee2a.decode(_0x19d069.pos), [_0x19d069.pid]);
  5667. _0x40e3dd.setState(_0x307949.SNAME.GHOST);
  5668. this.team && (_0x19d069 = this.getPlayerInfo(_0x19d069.pid)) && _0x19d069['id'] !== this.pid && _0x19d069.team === this.team && (_0x40e3dd = this.getGhost(_0x19d069['id'])) && (_0x40e3dd.name = _0x19d069.name);
  5669. }
  5670. };
  5671. Game.prototype.doNET011 = function(_0xe3249a) {
  5672. _0xe3249a.pid !== this.pid && ((_0xe3249a = this.getGhost(_0xe3249a.pid)) && _0xe3249a.kill(), this.remain = this.getRemain());
  5673. };
  5674. Game.prototype.doNET012 = function(_0x5efd85) {
  5675. if (_0x5efd85.pid !== this.pid) {
  5676. var _0x58f987 = this.getGhost(_0x5efd85.pid);
  5677. _0x58f987 && _0x58f987.update(_0x5efd85);
  5678. }
  5679. };
  5680. Game.prototype.doNET013 = function(_0x540528) {
  5681. _0x540528.pid !== this.pid && this.getGhost(_0x540528.pid).trigger(_0x540528.type);
  5682. };
  5683. Game.prototype.doNET017 = function(_0x3747fd) {
  5684. _0x3747fd = Cookies.get("heated_gamer_moments");
  5685. Cookies.set("heated_gamer_moments", _0x3747fd ? parseInt(_0x3747fd) + 1 : 0x1, {
  5686. 'expires': 365
  5687. });
  5688. };
  5689. Game.prototype.doNET018 = function(_0x48ae54) {
  5690. if (!(0 >= _0x48ae54.result)) {
  5691. _0x48ae54.pid === this.pid ? this.rate = _0x48ae54.extra : 0 !== this.rate && _0x48ae54.result++;
  5692. var _0x42fcba = this.getGhost(_0x48ae54.pid);
  5693. if (_0x42fcba && (_0x42fcba = this.getText(_0x42fcba.level, _0x42fcba.zone, _0x48ae54.result.toString()))) {
  5694. var _0x2cc961 = this.getPlayerInfo(_0x48ae54.pid).name;
  5695. this.createObject(_0x1e1f24['ID'], _0x42fcba.level, _0x42fcba.zone, _0x4628a4.add(_0x42fcba.pos, _0x4628a4.make(0, -3)), [void 0, -0.1, 0.25, "#FFFFFF", _0x2cc961]);
  5696. }
  5697. _0x48ae54.pid === this.pid && ((_0x42fcba = this.getPlayer()) && _0x42fcba.axe(_0x48ae54.result), this.victory = _0x48ae54.result, 1 === _0x48ae54.result && (_0x48ae54 = Cookies.get("epic_gamer_moments"), Cookies.set("epic_gamer_moments", _0x48ae54 ? parseInt(_0x48ae54) + 1 : 0x1, {
  5698. 'expires': 365
  5699. })));
  5700. }
  5701. };
  5702. Game.prototype.doNET020 = function(_0xa68bc6) {
  5703. if (!(_0xa68bc6.pid === this.pid && 160 > _0xa68bc6.type)) {
  5704. var _0x58e2c4 = this.getObject(_0xa68bc6.level, _0xa68bc6.zone, _0xa68bc6.oid);
  5705. _0x58e2c4 && _0x58e2c4.update(_0xa68bc6.type);
  5706. }
  5707. };
  5708. Game.prototype.doNET030 = function(_0x17604a) {
  5709. _0x17604a.pid !== this.pid && this.world.getZone(_0x17604a.level, _0x17604a.zone).update(this, _0x17604a.pid, _0x17604a.level, _0x17604a.zone, _0x17604a.pos['x'], _0x17604a.pos['y'], _0x17604a.type);
  5710. };
  5711. Game.prototype.doStart = function() {
  5712. this.startTimer = -1;
  5713. this.startDelta = _0x35d3bd.time.now();
  5714. this.doSpawn();
  5715. };
  5716. Game.prototype.doDetermine = function() {
  5717. var _0x3bc016 = this.input.pop();
  5718. 0 < _0x3bc016.touch.length ? this.touchMode = !0 : 0x0 < _0x3bc016.keyboard.length && (this.touchMode = !1);
  5719. this.touchMode ? this.doTouch(_0x3bc016) : this.doInput(_0x3bc016);
  5720. };
  5721. Game.prototype.doTouch = function(_0x16ab60) {
  5722. var _0xf827ff = this.input,
  5723. _0x4d1269 = this.getPlayer();
  5724. this.display.camera.scale = 2;
  5725. if (!this.touchFull) {
  5726. var _0x32b9fa = document.documentElement;
  5727. _0x32b9fa.requestFullscreen ? this.container.requestFullscreen() : _0x32b9fa.mozRequestFullScreen ? _0x32b9fa.mozRequestFullScreen() : _0x32b9fa.webkitRequestFullscreen ? _0x32b9fa.webkitRequestFullscreen() : _0x32b9fa.msRequestFullscreen && _0x32b9fa.msRequestFullscreen();
  5728. this.touchFull = !0;
  5729. }
  5730. for (var _0x19b888 = this, _0x32b9fa = this.display.canvas.width, _0x43b0a9 = this.display.canvas.height, _0x4cea84 = !1, _0x56e5b0 = !1, _0x32b9fa = [{
  5731. 'pos': _0x4628a4.make(_0x32b9fa - 85, _0x43b0a9 - 85),
  5732. 'dim': _0x4628a4.make(85, 0x55),
  5733. 'press': function() {
  5734. _0x4cea84 = !0;
  5735. }
  5736. }, {
  5737. 'pos': _0x4628a4.make(_0x32b9fa - 85, _0x43b0a9 - 170),
  5738. 'dim': _0x4628a4.make(85, 0x55),
  5739. 'press': function() {
  5740. _0x56e5b0 = !0;
  5741. }
  5742. }, {
  5743. 'pos': _0x4628a4.make(_0x32b9fa - 85, _0x43b0a9 - 255),
  5744. 'dim': _0x4628a4.make(85, 0x55),
  5745. 'click': function() {
  5746. _0x19b888.touchRun = !_0x19b888.touchRun;
  5747. }
  5748. }, {
  5749. 'pos': _0x4628a4.make(_0x32b9fa - 24 - 0x8, 40),
  5750. 'dim': _0x4628a4.make(24, 0x18),
  5751. 'click': function() {
  5752. _0x19b888.audio.muteMusic = !_0x19b888.audio.muteMusic;
  5753. _0x19b888.audio.saveSettings();
  5754. }
  5755. }, {
  5756. 'pos': _0x4628a4.make(_0x32b9fa - 24 - 0x8 - 24 - 0x8, 40),
  5757. 'dim': _0x4628a4.make(24, 0x18),
  5758. 'click': function() {
  5759. _0x19b888.audio.muteSound = !_0x19b888.audio.muteSound;
  5760. _0x19b888.audio.saveSettings();
  5761. }
  5762. }], _0x2548fc, _0x43b0a9 = 0; _0x43b0a9 < _0xf827ff.touch.pos.length; _0x43b0a9++) {
  5763. var _0xb6453b = _0xf827ff.touch.pos[_0x43b0a9];
  5764. if (this.thumbId === _0xb6453b['id']) _0x2548fc = _0xb6453b, this.thumbId = _0xb6453b['id'], this.thumbPos = _0xb6453b;
  5765. else
  5766. for (_0x43b0a9 = 0; _0x43b0a9 < _0x32b9fa.length; _0x43b0a9++) {
  5767. var _0x5b2133 = _0x32b9fa[_0x43b0a9];
  5768. _0x4c4bae.inside(_0xb6453b, _0x5b2133.pos, _0x5b2133.dim) && _0x5b2133.press && _0x5b2133.press();
  5769. }
  5770. }
  5771. for (_0x43b0a9 = 0; _0x43b0a9 < _0x16ab60.touch.length; _0x43b0a9++) {
  5772. _0xb6453b = _0x16ab60.touch[_0x43b0a9];
  5773. _0xf827ff = !1;
  5774. for (_0x43b0a9 = 0; _0x43b0a9 < _0x32b9fa.length; _0x43b0a9++)
  5775. if (_0x5b2133 = _0x32b9fa[_0x43b0a9], _0x4c4bae.inside(_0xb6453b, _0x5b2133.pos, _0x5b2133.dim)) {
  5776. _0xf827ff = !0;
  5777. _0x5b2133.click && _0x5b2133.click();
  5778. break;
  5779. } _0x2548fc || _0xf827ff || (_0x2548fc = _0xb6453b, this.thumbId = _0xb6453b['id'], this.thumbPos = this.thumbOrigin = _0xb6453b);
  5780. }
  5781. var _0x204529;
  5782. if (_0x2548fc) {
  5783. _0x16ab60 = Math.min(64, _0x4628a4.distance(this.thumbPos, this.thumbOrigin));
  5784. var _0x90e934 = _0x4628a4.normalize(_0x4628a4.subtract(this.thumbPos, this.thumbOrigin));
  5785. _0x204529 = _0x4628a4.scale(_0x90e934, _0x16ab60 / 64);
  5786. this.thumbPos = _0x4628a4.add(this.thumbOrigin, _0x4628a4.scale(_0x90e934, _0x16ab60));
  5787. } else this.thumbPos = this.thumbOrigin = this.thumbId = void 0;
  5788. _0x4d1269 && _0x90e934 ? (_0x90e934 = [0, 0x0], 0.33 < _0x204529['x'] && _0x90e934[0]++, -0.33 > _0x204529['x'] && _0x90e934[0]--, 0.33 < _0x204529['y'] && _0x90e934[1]--, -0.33 > _0x204529['y'] && _0x90e934[1]++, _0x4d1269.input(_0x90e934, _0x4cea84, this.touchRun ? !_0x56e5b0 : _0x56e5b0)) : _0x4d1269 && _0x4d1269.input([0, 0x0], _0x4cea84, this.touchRun ? !_0x56e5b0 : _0x56e5b0);
  5789. };
  5790. Game.prototype.doInput = function(_0x272a96) {
  5791. this.input.pad.update();
  5792. var _0x452817 = this.input,
  5793. _0x12e188 = this.input.mouse,
  5794. _0x7723c1 = this.input.keyboard.keys,
  5795. _0x2f8a36 = this.input.pad;
  5796. this.inx27 = _0x7723c1[27];
  5797. var _0x9016e3 = this.getPlayer();
  5798. if (_0x9016e3) {
  5799. var _0x46d9a6 = [0, 0x0];
  5800. (_0x7723c1[_0x452817.assignK['up']] || _0x2f8a36.button(_0x452817.assignG['up']) || -0.1 > _0x2f8a36['ax']['y']) && _0x46d9a6[1]++;
  5801. (_0x7723c1[_0x452817.assignK.down] || _0x2f8a36.button(_0x452817.assignG.down) || 0.1 < _0x2f8a36['ax']['y']) && _0x46d9a6[1]--;
  5802. (_0x7723c1[_0x452817.assignK.left] || _0x2f8a36.button(_0x452817.assignG.left) || -0.1 > _0x2f8a36['ax']['x']) && _0x46d9a6[0]--;
  5803. (_0x7723c1[_0x452817.assignK.right] || _0x2f8a36.button(_0x452817.assignG.right) || 0.1 < _0x2f8a36['ax']['x']) && _0x46d9a6[0]++;
  5804. var _0x13ec31 = _0x7723c1[_0x452817.assignK['a']] || _0x2f8a36.button(_0x452817.assignG['a']),
  5805. _0x452817 = _0x7723c1[_0x452817.assignK['b']] || _0x2f8a36.button(_0x452817.assignG['b']);
  5806. _0x12e188.spin && this.display.camera.zoom(_0x12e188.spin);
  5807. _0x9016e3.input(_0x46d9a6, _0x13ec31, _0x452817);
  5808. for (var _0x2b9352 = this, _0x452817 = this.display.canvas.width, _0x12e188 = [{
  5809. 'pos': _0x4628a4.make(_0x452817 - 24 - 0x8, 40),
  5810. 'dim': _0x4628a4.make(24, 0x18),
  5811. 'click': function() {
  5812. _0x2b9352.audio.muteMusic = !_0x2b9352.audio.muteMusic;
  5813. _0x2b9352.audio.saveSettings();
  5814. }
  5815. }, {
  5816. 'pos': _0x4628a4.make(_0x452817 - 24 - 0x8 - 24 - 0x8, 40),
  5817. 'dim': _0x4628a4.make(24, 0x18),
  5818. 'click': function() {
  5819. _0x2b9352.audio.muteSound = !_0x2b9352.audio.muteSound;
  5820. _0x2b9352.audio.saveSettings();
  5821. }
  5822. }], _0x9016e3 = 0; _0x9016e3 < _0x272a96.mouse.length; _0x9016e3++)
  5823. for (_0x46d9a6 = _0x272a96.mouse[_0x9016e3], _0x13ec31 = 0; _0x13ec31 < _0x12e188.length; _0x13ec31++) _0x452817 = _0x12e188[_0x13ec31], 0 === _0x46d9a6.btn && _0x4c4bae.inside(_0x46d9a6.pos, _0x452817.pos, _0x452817.dim) && _0x452817.click();
  5824. }
  5825. };
  5826. Game.prototype.doStep = function() {
  5827. var _0x2d3429 = this.getPlayer();
  5828. if (_0x2d3429 && void 0 !== this.levelWarpId && 0 < this.levelWarpTimer && 1 > --this.levelWarpTimer) {
  5829. var _0x18dab7 = this.world.getLevel(this.levelWarpId).getInitial();
  5830. _0x2d3429.level = _0x18dab7.level;
  5831. _0x2d3429.zone = _0x18dab7['id'];
  5832. _0x2d3429.pos = _0xd3ee2a.decode(_0x18dab7.initial);
  5833. _0x2d3429.autoTarget = void 0;
  5834. _0x2d3429.grounded = !1;
  5835. _0x2d3429.show();
  5836. _0x2d3429.invuln();
  5837. this.levelWarpId = void 0;
  5838. }
  5839. for (_0x18dab7 = 0; _0x18dab7 < this.objects.length; _0x18dab7++) {
  5840. var _0x11aea3 = this.objects[_0x18dab7];
  5841. _0x11aea3.step();
  5842. _0x11aea3.garbage && this.objects.splice(_0x18dab7--, 1);
  5843. }
  5844. _0x18dab7 = this.getZone();
  5845. _0x2d3429 && !_0x2d3429.dead && this.display.camera.position(_0x4628a4.make(_0x2d3429.pos['x'], 0.5 * _0x18dab7.dimensions()['y']));
  5846. this.world.step();
  5847. for (_0x18dab7 = 0; _0x18dab7 < this.sounds.length; _0x18dab7++) this.sounds[_0x18dab7].done() && this.sounds.splice(_0x18dab7--, 1);
  5848. this.doMusic();
  5849. this.audio.update();
  5850. void 0 === this.startDelta || this.gameOver || _0x2d3429 ? this.gameOver ? ++this.gameOverTimer > Game.GAME_OVER_TIME && _0x5c48db.close() : this.gameOverTimer = 0 : 0x0 < this.lives && 0 >= this.victory ? (_0x2d3429 = this.getZone().level, this.doSpawn(), this.levelWarp(_0x2d3429), this.lives--) : 45 < ++this.gameOverTimer && (this.gameOver = !0, this.gameOverTimer = 0);
  5851. this.lastDraw = this.frame;
  5852. this.frame++;
  5853. };
  5854. Game.prototype.doSpawn = function() {
  5855. if (!this.getPlayer()) {
  5856. var _0x55031d = this.getZone(),
  5857. _0x1f92b4 = _0x55031d.initial;
  5858. this.createObject(_0x307949['ID'], _0x55031d.level, _0x55031d['id'], _0xd3ee2a.decode(_0x1f92b4), [this.pid]);
  5859. this.out.push(_0xd472e9.encode(_0x55031d.level, _0x55031d, _0x1f92b4));
  5860. }
  5861. this.updateTeam();
  5862. };
  5863. Game.prototype.doMusic = function() {
  5864. var _0x59c784 = this.getPlayer(),
  5865. _0x48cc46 = this.getZone();
  5866. this.gameOver ? this.audio.setMusic("music/gameover.mp3", !1) : _0x59c784 && _0x59c784.dead ? this.audio.setMusic("music/dead.mp3", !1) : _0x59c784 && _0x59c784.autoTarget && 0 >= this.victory ? this.audio.setMusic("music/level.mp3", !1) : 0 < this.victory && !this.victoryMusic ? (this.audio.setMusic("music/castle.mp3", !1), this.victoryMusic = !0) : 0 < this.victory && 4 > this.victory && this.victoryMusic && !this.audio.music.playing ? this.audio.setMusic("music/victory.mp3", !1) : _0x59c784 && 0 >= this.levelWarpTimer && void 0 !== this.startDelta && !this.victoryMusic && ('' !== _0x48cc46.music ? this.audio.setMusic(_0x48cc46.music, !0) : this.audio.stopMusic());
  5867. };
  5868. Game.prototype.doPush = function() {
  5869. var _0x3a34ba = this.getPlayer();
  5870. _0x3a34ba && !_0x3a34ba.dead && this.out.push(_0xebf263.encode(_0x3a34ba.level, _0x3a34ba.zone, _0x3a34ba.pos, _0x3a34ba.sprite['ID'], _0x3a34ba.reverse));
  5871. _0x3a34ba = _0x5b3c43(this.out);
  5872. this.out = [];
  5873. _0x5c48db.net.sendBinary(_0x3a34ba);
  5874. };
  5875. Game.prototype.createObject = function(_0x2cfee2, _0x42c475, _0x3d76c7, _0x5b9308, _0x269b88) {
  5876. _0x42c475 = [void 0, this, _0x42c475, _0x3d76c7, _0x5b9308];
  5877. for (_0x3d76c7 = 0; _0x3d76c7 < _0x269b88.length; _0x3d76c7++) _0x42c475.push(_0x269b88[_0x3d76c7]);
  5878. _0x2b132.OBJECT(_0x2cfee2);
  5879. _0x2cfee2 = new(Function.prototype.bind.apply(_0x2b132.OBJECT(_0x2cfee2), _0x42c475))();
  5880. this.objects.push(_0x2cfee2);
  5881. return _0x2cfee2;
  5882. };
  5883. Game.prototype.getObject = function(_0x46bc38, _0x39a7d2, _0x571f38) {
  5884. for (var _0x46a10e = 0; _0x46a10e < this.objects.length; _0x46a10e++) {
  5885. var _0x31691a = this.objects[_0x46a10e];
  5886. if (void 0 !== _0x31691a.oid && _0x31691a.level === _0x46bc38 && _0x31691a.zone === _0x39a7d2 && _0x31691a.oid === _0x571f38) return _0x31691a;
  5887. }
  5888. };
  5889. Game.prototype.getFlag = function(_0x3ff6f8, _0x23ac07) {
  5890. for (var _0x1712ec = 0; _0x1712ec < this.objects.length; _0x1712ec++) {
  5891. var _0x3aad16 = this.objects[_0x1712ec];
  5892. if (_0x3aad16.level === _0x3ff6f8 && _0x3aad16.zone === _0x23ac07 && _0x3aad16 instanceof _0x42a575) return _0x3aad16;
  5893. }
  5894. };
  5895. Game.prototype.getText = function(_0x55b1f3, _0xa7c596, _0x26077c) {
  5896. for (var _0x4a1af5 = 0; _0x4a1af5 < this.objects.length; _0x4a1af5++) {
  5897. var _0x5dfc3b = this.objects[_0x4a1af5];
  5898. if (_0x5dfc3b && _0x5dfc3b.level === _0x55b1f3 && _0x5dfc3b.zone === _0xa7c596 && _0x5dfc3b instanceof _0x1e1f24 && _0x5dfc3b.text === _0x26077c.toString()) return _0x5dfc3b;
  5899. }
  5900. };
  5901. Game.prototype.getPlatforms = function() {
  5902. for (var _0x162323 = this.getZone(), _0x5a8ebc = [], _0x23d166 = 0; _0x23d166 < this.objects.length; _0x23d166++) {
  5903. var _0x412059 = this.objects[_0x23d166];
  5904. (_0x412059 instanceof _0x23afdb || _0x412059 instanceof _0x4cfe85) && _0x412059.level === _0x162323.level && _0x412059.zone === _0x162323['id'] && _0x5a8ebc.push(_0x412059);
  5905. }
  5906. return _0x5a8ebc;
  5907. };
  5908. Game.prototype.getGhost = function(_0x45d2df) {
  5909. for (var _0x2e7390 = 0; _0x2e7390 < this.objects.length; _0x2e7390++) {
  5910. var _0x441994 = this.objects[_0x2e7390];
  5911. if (void 0 !== _0x441994.pid && _0x441994.pid === _0x45d2df) return _0x441994;
  5912. }
  5913. };
  5914. Game.prototype.getPlayer = function() {
  5915. for (var _0x53f94f = 0; _0x53f94f < this.objects.length; _0x53f94f++) {
  5916. var _0x26cc25 = this.objects[_0x53f94f];
  5917. if (void 0 !== _0x26cc25.pid && _0x26cc25.pid === this.pid) return _0x26cc25;
  5918. }
  5919. };
  5920. Game.prototype.getZone = function() {
  5921. var _0x3094c6 = this.getPlayer();
  5922. return _0x3094c6 ? this.lastZone = this.world.getZone(_0x3094c6.level, _0x3094c6.zone) : this.lastZone ? this.lastZone : this.world.getInitialZone();
  5923. };
  5924. Game.prototype.getPlayerInfo = function(_0x4af6ab) {
  5925. for (var _0x1dbfac = 0; _0x1dbfac < this.players.length; _0x1dbfac++) {
  5926. var _0x566f7a = this.players[_0x1dbfac];
  5927. if (_0x566f7a['id'] === _0x4af6ab) return _0x566f7a;
  5928. }
  5929. };
  5930. Game.prototype.getRemain = function() {
  5931. for (var _0x3b690b = 0, _0x5c3d42 = 0; _0x5c3d42 < this.players.length; _0x5c3d42++) {
  5932. var _0x140df1 = this.getGhost(this.players[_0x5c3d42]['id']);
  5933. _0x140df1 && !_0x140df1.dead && _0x3b690b++;
  5934. }
  5935. return _0x3b690b;
  5936. };
  5937. Game.prototype.play = function(_0x15cf7c, _0x4e52e8, _0x2ec40e) {
  5938. _0x15cf7c = this.audio.getAudio(_0x15cf7c, _0x4e52e8, _0x2ec40e, "effect");
  5939. _0x15cf7c.play();
  5940. this.sounds.push(_0x15cf7c);
  5941. };
  5942. Game.prototype.levelWarp = function(_0x42aa45) {
  5943. this.levelWarpId = _0x42aa45;
  5944. this.levelWarpTimer = Game.LEVEL_WARP_TIME;
  5945. this.getPlayer().hide();
  5946. };
  5947. Game.prototype.coinage = function() {
  5948. this.coins = Math.min(99, this.coins + 1);
  5949. this.coins >= Game.COINS_TO_LIFE && (this.lifeage(), this.coins = 0);
  5950. this.play("sfx/coin.wav", 0.4, 0);
  5951. };
  5952. Game.prototype.lifeage = function() {
  5953. this.lives = Math.min(99, this.lives + 1);
  5954. this.play("sfx/life.wav", 1, 0x0);
  5955. };
  5956. Game.prototype.loop = function() {
  5957. try {
  5958. if (this.ready && void 0 !== this.startDelta) {
  5959. var _0x141b78 = _0x35d3bd.time.now(),
  5960. _0xfc800d = parseInt((_0x141b78 - this.startDelta) / Game.TICK_RATE);
  5961. if (_0xfc800d > this.frame) {
  5962. for (var _0x46e24e = !0; this.buffer.length > Game.FDLC_TARGET || _0x46e24e && 0 < this.buffer.length;) {
  5963. var _0x286104 = this.buffer.shift();
  5964. this.doUpdate(_0x286104);
  5965. _0x46e24e = !1;
  5966. }
  5967. for (this.doDetermine(); _0xfc800d > this.frame;) this.doStep();
  5968. this.doPush();
  5969. this.delta = _0x141b78;
  5970. }
  5971. }
  5972. } catch (_0x210b90) {}
  5973. var _0x5b7ec0 = this;
  5974. this.loopReq = setTimeout(function() {
  5975. _0x5b7ec0.loop();
  5976. }, 2);
  5977. };
  5978. Game.prototype.draw = function() {
  5979. this.lastDraw === this.frame && void 0 !== this.startDelta || this.display.draw();
  5980. var _0x9123e0 = this;
  5981. this.frameReq = _0x4b822c.call(window, function() {
  5982. _0x9123e0.draw();
  5983. });
  5984. };
  5985. Game.prototype.destroy = function() {
  5986. _0x2d0f3c.call(window, this.frameReq);
  5987. clearTimeout(this.loopReq);
  5988. this.input.destroy();
  5989. this.display.destroy();
  5990. this.audio.destroy();
  5991. };
  5992. "use strict";
  5993. function Lobby(_0x41a8dd) {
  5994. Game.call(this, _0x41a8dd);
  5995. this.lobbyTimer = 90;
  5996. }
  5997. Lobby.prototype.load = Game.prototype.load;
  5998. Lobby.prototype.send = Game.prototype.send;
  5999. Lobby.prototype.handlePacket = Game.prototype.handlePacket;
  6000. Lobby.prototype.updatePlayerList = Game.prototype.updatePlayerList;
  6001. Lobby.prototype.gameStartTimer = function() {};
  6002. Lobby.prototype.updateTeam = Game.prototype.updateTeam;
  6003. Lobby.prototype.handleBinary = Game.prototype.handleBinary;
  6004. Lobby.prototype.updatePacket = Game.prototype.updatePacket;
  6005. Lobby.prototype.doUpdate = Game.prototype.doUpdate;
  6006. Lobby.prototype.doNET001 = Game.prototype.doNET001;
  6007. Lobby.prototype.doNET010 = Game.prototype.doNET010;
  6008. Lobby.prototype.doNET011 = Game.prototype.doNET011;
  6009. Lobby.prototype.doNET012 = Game.prototype.doNET012;
  6010. Lobby.prototype.doNET013 = Game.prototype.doNET013;
  6011. Lobby.prototype.doNET020 = Game.prototype.doNET020;
  6012. Lobby.prototype.doNET030 = Game.prototype.doNET030;
  6013. Lobby.prototype.doStart = Game.prototype.doStart;
  6014. Lobby.prototype.doDetermine = Game.prototype.doDetermine;
  6015. Lobby.prototype.doInput = Game.prototype.doInput;
  6016. Lobby.prototype.doTouch = Game.prototype.doTouch;
  6017. Lobby.prototype.doStep = function() {
  6018. this.doSpawn();
  6019. Game.prototype.doStep.call(this);
  6020. };
  6021. Lobby.prototype.doSpawn = Game.prototype.doSpawn;
  6022. Lobby.prototype.doMusic = Game.prototype.doMusic;
  6023. Lobby.prototype.doPush = Game.prototype.doPush;
  6024. Lobby.prototype.createObject = Game.prototype.createObject;
  6025. Lobby.prototype.getObject = Game.prototype.getObject;
  6026. Lobby.prototype.getFlag = Game.prototype.getFlag;
  6027. Lobby.prototype.getPlatforms = Game.prototype.getPlatforms;
  6028. Lobby.prototype.getGhost = Game.prototype.getGhost;
  6029. Lobby.prototype.getPlayer = Game.prototype.getPlayer;
  6030. Lobby.prototype.getZone = Game.prototype.getZone;
  6031. Lobby.prototype.getPlayerInfo = Game.prototype.getPlayerInfo;
  6032. Lobby.prototype.getRemain = Game.prototype.getRemain;
  6033. Lobby.prototype.play = Game.prototype.play;
  6034. Lobby.prototype.levelWarp = Game.prototype.levelWarp;
  6035. Lobby.prototype.coinage = Game.prototype.coinage;
  6036. Lobby.prototype.lifeage = Game.prototype.lifeage;
  6037. Lobby.prototype.loop = function() {
  6038. 0 < this.lobbyTimer ? this.lobbyTimer-- : void 0 === this.startDelta && this.doStart();
  6039. Game.prototype.loop.call(this);
  6040. };
  6041. Lobby.prototype.draw = Game.prototype.draw;
  6042. Lobby.prototype.destroy = Game.prototype.destroy;
  6043. "use strict";
  6044. function Jail(_0x338d27) {
  6045. Game.call(this, _0x338d27);
  6046. this.lobbyTimer = 90;
  6047. }
  6048. Jail.prototype.load = Game.prototype.load;
  6049. Jail.prototype.send = Game.prototype.send;
  6050. Jail.prototype.handlePacket = Game.prototype.handlePacket;
  6051. Jail.prototype.updatePlayerList = Game.prototype.updatePlayerList;
  6052. Jail.prototype.gameStartTimer = function() {};
  6053. Jail.prototype.updateTeam = Game.prototype.updateTeam;
  6054. Jail.prototype.handleBinary = Game.prototype.handleBinary;
  6055. Jail.prototype.updatePacket = Game.prototype.updatePacket;
  6056. Jail.prototype.doUpdate = Game.prototype.doUpdate;
  6057. Jail.prototype.doNET001 = Game.prototype.doNET001;
  6058. Jail.prototype.doNET010 = Game.prototype.doNET010;
  6059. Jail.prototype.doNET011 = Game.prototype.doNET011;
  6060. Jail.prototype.doNET012 = Game.prototype.doNET012;
  6061. Jail.prototype.doNET013 = Game.prototype.doNET013;
  6062. Jail.prototype.doNET020 = Game.prototype.doNET020;
  6063. Jail.prototype.doNET030 = Game.prototype.doNET030;
  6064. Jail.prototype.doStart = Game.prototype.doStart;
  6065. Jail.prototype.doDetermine = Game.prototype.doDetermine;
  6066. Jail.prototype.doInput = Game.prototype.doInput;
  6067. Jail.prototype.doTouch = Game.prototype.doTouch;
  6068. Jail.prototype.doStep = function() {
  6069. Game.prototype.doStep.call(this);
  6070. };
  6071. Jail.prototype.doSpawn = function() {};
  6072. Jail.prototype.doMusic = Game.prototype.doMusic;
  6073. Jail.prototype.doPush = Game.prototype.doPush;
  6074. Jail.prototype.createObject = Game.prototype.createObject;
  6075. Jail.prototype.getObject = Game.prototype.getObject;
  6076. Jail.prototype.getFlag = Game.prototype.getFlag;
  6077. Jail.prototype.getPlatforms = Game.prototype.getPlatforms;
  6078. Jail.prototype.getGhost = Game.prototype.getGhost;
  6079. Jail.prototype.getPlayer = Game.prototype.getPlayer;
  6080. Jail.prototype.getZone = Game.prototype.getZone;
  6081. Jail.prototype.getPlayerInfo = Game.prototype.getPlayerInfo;
  6082. Jail.prototype.getRemain = Game.prototype.getRemain;
  6083. Jail.prototype.play = Game.prototype.play;
  6084. Jail.prototype.levelWarp = Game.prototype.levelWarp;
  6085. Jail.prototype.coinage = Game.prototype.coinage;
  6086. Jail.prototype.lifeage = Game.prototype.lifeage;
  6087. Jail.prototype.loop = function() {
  6088. 0 < this.lobbyTimer ? this.lobbyTimer-- : void 0 === this.startDelta && this.doStart();
  6089. Game.prototype.loop.call(this);
  6090. };
  6091. Jail.prototype.draw = Game.prototype.draw;
  6092. Jail.prototype.destroy = Game.prototype.destroy;
  6093. "use strict";
  6094. function _0x4a78d1() {
  6095. this.menu = new Menu();
  6096. this.net = new Net();
  6097. }
  6098. _0x4a78d1.prototype.init = function() {
  6099. var _0x2c1b54 = this;
  6100. this.menu.disclaim.show();
  6101. setTimeout(function() {
  6102. _0x2c1b54.menu.load.show();
  6103. $.ajax({
  6104. 'url': "/royale/status",
  6105. 'type': "GET",
  6106. 'timeout': 3000,
  6107. 'success': function(_0x4120a1) {
  6108. _0x4120a1.result ? _0x2c1b54.menu.error.show(_0x4120a1.result) : _0x2c1b54.menu.main.show(_0x4120a1.active);
  6109. },
  6110. 'error': function() {
  6111. _0x2c1b54.menu.error.show("An unknown error occured while connecting to the game server...");
  6112. }
  6113. });
  6114. }, 2000);
  6115. };
  6116. _0x4a78d1.prototype.load = function(_0x3f8d80) {
  6117. if (this.game instanceof Game) this.menu.error.show("State error. Game already loaded.");
  6118. else switch (this.game instanceof Lobby && this.game.destroy(), _0x3f8d80.type) {
  6119. case "game":
  6120. this.game = new Game(_0x3f8d80);
  6121. break;
  6122. case "lobby":
  6123. this.game = new Lobby(_0x3f8d80);
  6124. break;
  6125. case "jail":
  6126. this.game = new Jail(_0x3f8d80);
  6127. break;
  6128. default:
  6129. this.menu.error.show("Critical error! Game file missing type!");
  6130. }
  6131. };
  6132. _0x4a78d1.prototype.ingame = function() {
  6133. return !!this.game;
  6134. };
  6135. _0x4a78d1.prototype.join = function(_0x327f2f, _0x3dc984) {
  6136. this.ingame() ? this.menu.error.show("An error occured while starting game...") : (this.menu.load.show(), this.net.connect(_0x327f2f, _0x3dc984));
  6137. };
  6138. _0x4a78d1.prototype.close = function() {
  6139. this.menu.load.show();
  6140. this.ingame() && this.net.close();
  6141. location.reload();
  6142. };
  6143. var _0x5c48db = new _0x4a78d1();
  6144. _0x5c48db.init();