1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630 |
- function Config() {}
- function startup() {
- game = new Phaser.Game(Config.WIDTH, Config.HEIGHT, Phaser.CANVAS, "gameArea"), game.state.add("Boot", App.BootState), game.state.add("Preloader", App.PreloaderState), game.state.add("MainMenu", App.MainMenuState), game.state.add("LevelSelect", App.LevelSelectState), game.state.add("Gameplay", App.GameplayState), game.state.add("GameComplete", App.GameCompleteState), game.state.start("Boot")
- }
- App.Commands = Class.extend({
- init: function() {},
- gameStart: function() {
- SG_Hooks.start(), Config.TEST_GAME_COMPLETE ? cmd.gameComplete() : cookies.isNewGame ? cmd.levelStart(Config.START_LEVEL) : game.state.start("LevelSelect")
- },
- levelStart: function(a) {
- data.curLevel = data.levels[a], data.levelStartTime = game.time.now, data.pauseTime = 0, game.state.start("Gameplay")
- },
- levelComplete: function() {
- SG_Hooks.levelUp(data.curLevel.id + 1, 1000), game.state.getCurrentState().levelComplete(), data.curLevel.complete(), cookies.levelComplete(), stateSlider.levelComplete();
- },
- gameComplete: function() {
- SG_Hooks.gameOver(data.curLevel.id + 1, 1000); fader.fade(this.doGameComplete, this);
- },
- doGameComplete: function() {
- game.state.start("GameComplete")
- }
- }), Config.VERSION = "0.99", Config.WIDTH = 640, Config.HEIGHT = 712, Config.FONT_LEVEL_SELECT_ID = "Arial", Config.FONT_GAMEPLAY_LEVEL_ID = "Titan One", Config.TOUCH_BOUNDS = {
- x: 0,
- y: 100,
- width: Config.WIDTH,
- height: Config.HEIGHT - 100
- }, Config.BITMAP_LINES = !0, Config.USE_PARTICLES = !0, Config.ANIMATION = !0, Config.SOUNDS_ENABLED = !1, Config.TRANSPARENT = !1, Config.START_LEVEL = 0, Config.TEST_GAME_COMPLETE = !1, Config.SHOW_FPS = !0, Config.OPEN_ALL_LEVELS = !0, Config.DEBUG_PHYSICS = !1, Config.ENABLE_CHEAT = !0, Config.RELEASE = !0, Config.RELEASE && (Config.ANIMATION = !0, Config.SOUNDS_ENABLED = !0, Config.TRANSPARENT = !1, Config.START_LEVEL = 0, Config.TEST_GAME_COMPLETE = !1, Config.SHOW_FPS = !1, Config.OPEN_ALL_LEVELS = !1, Config.DEBUG_PHYSICS = !1, Config.ENABLE_CHEAT = !1), App.Cookies = Class.extend({
- init: function() {
- this.gameStorageKey = "doodleconnect", this.initSound(), this.isNewGame = !0, this.initLevels()
- },
- isSupported: function() {
- var a = "test",
- b = window.sessionStorage;
- try {
- return b.setItem(a, "1"), b.removeItem(a), !0
- } catch (c) {
- return !1
- }
- },
- getStorage: function(a) {
- return localStorage[this.gameStorageKey + "." + a]
- },
- setStorage: function(a, b) {
- this.isSupported() && (localStorage[this.gameStorageKey + "." + a] = b)
- },
- initSound: function() {
- Config.SOUNDS_ENABLED = "false" == this.getStorage("soundEnabled") ? !1 : !0
- },
- saveSound: function() {
- this.setStorage("soundEnabled", Config.SOUNDS_ENABLED)
- },
- initLevels: function() {
- if (void 0 != this.getStorage("levels"))
- for (var a = 0; a < data.levels.length; a++) {
- var b = data.levels[a];
- "true" == this.getStorage("levels." + a + ".isCompleted") && (b.isOpen = !0, b.isCompleted = !0, this.isNewGame = !1)
- }
- this.updateOpenLevels()
- },
- updateOpenLevels: function() {
- var a, b;
- if (Config.OPEN_ALL_LEVELS)
- for (a = 0; a < data.levels.length; a++) b = data.levels[a], b.isOpen = !0;
- else
- for (a = 0; a < data.levels.length; a++)
- if (b = data.levels[a], !b.isCompleted) {
- b.isOpen = !0;
- break
- }
- },
- levelComplete: function() {
- this.setStorage("levels", "true");
- var a = data.curLevel.id;
- this.setStorage("levels." + a + ".isCompleted", "true"), this.isNewGame = !1, this.updateOpenLevels()
- },
- clear: function() {
- localStorage.clear(), this.isNewGame = !0, this.uncompleteLevels(), this.updateOpenLevels()
- },
- uncompleteLevels: function() {
- for (var a = 0; a < data.levels.length; a++) {
- var b = data.levels[a];
- b.reset()
- }
- }
- }), App.Data = Class.extend({
- init: function(a) {
- this.lang = a, this.texts = JSON.parse(game.cache.getText("textData")), this.curLevel = null, this.levelStartTime = 0, this.levelStartTime = 0, this.pauseTime = 0, this.pausedByUser = !1, this.initLevels(), this.sndPiano = game.add.audio("sndPiano");
- for (var b = 0; 24 > b; b++) this.sndPiano.addMarker("note" + b, b, 1);
- this.atlasName = "pics"
- },
- getAtlasKey: function(a) {
- return this.atlasName + "/" + a + "_0000"
- },
- addAtlasSprite: function(a, b) {
- var c = 0,
- d = 0,
- e = game.world;
- return b && (void 0 != b.x && (c = b.x), void 0 != b.y && (d = b.y), void 0 != b.parent && (e = b.parent)), game.add.sprite(c, d, this.atlasName, this.getAtlasKey(a), e)
- },
- initLevels: function() {
- this.levels = [], this.addLevel({
- name: "P1",
- items: [{
- id: 0,
- x: 160,
- y: 240
- }, {
- id: 1,
- x: 480,
- y: 240
- }, {
- id: 2,
- x: 160,
- y: 560
- }, {
- id: 3,
- x: 480,
- y: 560
- }],
- links: [{
- p1: 3,
- p2: 2
- }, {
- p1: 1,
- p2: 3
- }, {
- p1: 0,
- p2: 1
- }, {
- p1: 2,
- p2: 0
- }],
- decor: {
- name: "pic1",
- x: 239,
- y: 333
- }
- }), this.addLevel({
- name: "Star",
- items: [{
- id: 0,
- x: 80,
- y: 320
- }, {
- id: 1,
- x: 323,
- y: 161
- }, {
- id: 2,
- x: 160,
- y: 600
- }, {
- id: 3,
- x: 480,
- y: 600
- }, {
- id: 4,
- x: 560,
- y: 320
- }],
- links: [{
- p1: 3,
- p2: 0
- }, {
- p1: 1,
- p2: 3
- }, {
- p1: 2,
- p2: 1
- }, {
- p1: 4,
- p2: 2
- }, {
- p1: 0,
- p2: 4
- }],
- decor: {
- name: "pic2",
- x: 117,
- y: 153
- }
- }), this.addLevel({
- name: "Three Rombs",
- items: [{
- id: 0,
- x: 80,
- y: 389
- }, {
- id: 1,
- x: 320,
- y: 629
- }, {
- id: 2,
- x: 560,
- y: 389
- }, {
- id: 3,
- x: 480,
- y: 389
- }, {
- id: 4,
- x: 320,
- y: 549
- }, {
- id: 5,
- x: 160,
- y: 389
- }, {
- id: 6,
- x: 320,
- y: 149
- }, {
- id: 7,
- x: 320,
- y: 229
- }, {
- id: 8,
- x: 320,
- y: 469
- }, {
- id: 9,
- x: 400,
- y: 389
- }, {
- id: 10,
- x: 240,
- y: 389
- }, {
- id: 11,
- x: 320,
- y: 309
- }],
- links: [{
- p1: 2,
- p2: 6
- }, {
- p1: 1,
- p2: 2
- }, {
- p1: 0,
- p2: 1
- }, {
- p1: 6,
- p2: 0
- }, {
- p1: 7,
- p2: 6
- }, {
- p1: 3,
- p2: 7
- }, {
- p1: 4,
- p2: 3
- }, {
- p1: 5,
- p2: 4
- }, {
- p1: 7,
- p2: 5
- }, {
- p1: 11,
- p2: 7
- }, {
- p1: 9,
- p2: 11
- }, {
- p1: 8,
- p2: 9
- }, {
- p1: 10,
- p2: 8
- }, {
- p1: 11,
- p2: 10
- }],
- decor: {
- name: "pic3",
- x: 97,
- y: 495
- }
- }), this.addLevel({
- name: "Possible Quad",
- items: [{
- id: 0,
- x: 320,
- y: 361
- }, {
- id: 1,
- x: 120,
- y: 160
- }, {
- id: 2,
- x: 120,
- y: 560
- }, {
- id: 3,
- x: 520,
- y: 560
- }, {
- id: 4,
- x: 520,
- y: 160
- }],
- links: [{
- p1: 1,
- p2: 4
- }, {
- p1: 0,
- p2: 3
- }, {
- p1: 0,
- p2: 2
- }, {
- p1: 2,
- p2: 1
- }, {
- p1: 4,
- p2: 3
- }, {
- p1: 0,
- p2: 4
- }, {
- p1: 1,
- p2: 0
- }],
- decor: {
- name: "pic4",
- x: 191,
- y: 494
- }
- }), this.addLevel({
- name: "Resistor",
- items: [{
- id: 0,
- x: 440,
- y: 332
- }, {
- id: 1,
- x: 200,
- y: 332
- }, {
- id: 2,
- x: 560,
- y: 332
- }, {
- id: 3,
- x: 80,
- y: 332
- }, {
- id: 4,
- x: 200,
- y: 172
- }, {
- id: 5,
- x: 440,
- y: 172
- }, {
- id: 6,
- x: 200,
- y: 492
- }, {
- id: 7,
- x: 440,
- y: 492
- }],
- links: [{
- p1: 0,
- p2: 2
- }, {
- p1: 1,
- p2: 0
- }, {
- p1: 1,
- p2: 3
- }, {
- p1: 1,
- p2: 4
- }, {
- p1: 6,
- p2: 1
- }, {
- p1: 7,
- p2: 6
- }, {
- p1: 0,
- p2: 7
- }, {
- p1: 5,
- p2: 0
- }, {
- p1: 4,
- p2: 5
- }],
- decor: {
- name: "pic5",
- x: 388,
- y: 518
- }
- }), this.addLevel({
- name: "Pyramid",
- items: [{
- id: 0,
- x: 560,
- y: 560
- }, {
- id: 1,
- x: 320,
- y: 560
- }, {
- id: 2,
- x: 80,
- y: 560
- }, {
- id: 3,
- x: 440,
- y: 400
- }, {
- id: 4,
- x: 320,
- y: 240
- }, {
- id: 5,
- x: 200,
- y: 400
- }],
- links: [{
- p1: 1,
- p2: 5
- }, {
- p1: 3,
- p2: 1
- }, {
- p1: 5,
- p2: 3
- }, {
- p1: 3,
- p2: 4
- }, {
- p1: 0,
- p2: 3
- }, {
- p1: 1,
- p2: 0
- }, {
- p1: 2,
- p2: 1
- }, {
- p1: 5,
- p2: 2
- }, {
- p1: 4,
- p2: 5
- }],
- decor: {
- name: "pic6",
- x: 424,
- y: 131
- }
- }), this.addLevel({
- name: "House",
- items: [{
- id: 0,
- x: 100,
- y: 350
- }, {
- id: 1,
- x: 300,
- y: 150
- }, {
- id: 2,
- x: 101,
- y: 601
- }, {
- id: 3,
- x: 548,
- y: 600
- }, {
- id: 4,
- x: 550,
- y: 350
- }],
- links: [{
- p1: 4,
- p2: 0
- }, {
- p1: 2,
- p2: 4
- }, {
- p1: 0,
- p2: 3
- }, {
- p1: 2,
- p2: 0
- }, {
- p1: 3,
- p2: 2
- }, {
- p1: 4,
- p2: 3
- }, {
- p1: 1,
- p2: 4
- }, {
- p1: 0,
- p2: 1
- }],
- decor: {
- name: "pic7",
- x: 198,
- y: 200
- }
- }), this.addLevel({
- name: "Triangle Down",
- items: [{
- id: 0,
- x: 387,
- y: 440
- }, {
- id: 1,
- x: 480,
- y: 200
- }, {
- id: 2,
- x: 160,
- y: 200
- }, {
- id: 3,
- x: 320,
- y: 560
- }, {
- id: 4,
- x: 253,
- y: 440
- }, {
- id: 5,
- x: 160,
- y: 320
- }, {
- id: 6,
- x: 480,
- y: 320
- }],
- links: [{
- p1: 0,
- p2: 6
- }, {
- p1: 3,
- p2: 0
- }, {
- p1: 4,
- p2: 3
- }, {
- p1: 5,
- p2: 4
- }, {
- p1: 0,
- p2: 4
- }, {
- p1: 6,
- p2: 5
- }, {
- p1: 2,
- p2: 6
- }, {
- p1: 1,
- p2: 5
- }, {
- p1: 1,
- p2: 6
- }, {
- p1: 2,
- p2: 5
- }],
- decor: {
- name: "pic8",
- x: 386,
- y: 494
- }
- }), this.addLevel({
- name: "Star2",
- items: [{
- id: 0,
- x: 560,
- y: 480
- }, {
- id: 1,
- x: 480,
- y: 200
- }, {
- id: 2,
- x: 160,
- y: 200
- }, {
- id: 3,
- x: 80,
- y: 480
- }, {
- id: 4,
- x: 320,
- y: 680
- }, {
- id: 5,
- x: 80,
- y: 320
- }, {
- id: 6,
- x: 323,
- y: 161
- }, {
- id: 7,
- x: 160,
- y: 600
- }, {
- id: 8,
- x: 480,
- y: 600
- }, {
- id: 9,
- x: 560,
- y: 320
- }],
- links: [{
- p1: 2,
- p2: 5
- }, {
- p1: 6,
- p2: 2
- }, {
- p1: 1,
- p2: 6
- }, {
- p1: 9,
- p2: 1
- }, {
- p1: 0,
- p2: 9
- }, {
- p1: 8,
- p2: 0
- }, {
- p1: 3,
- p2: 5
- }, {
- p1: 7,
- p2: 3
- }, {
- p1: 4,
- p2: 7
- }, {
- p1: 4,
- p2: 8
- }, {
- p1: 7,
- p2: 8
- }, {
- p1: 8,
- p2: 5
- }, {
- p1: 6,
- p2: 8
- }, {
- p1: 7,
- p2: 6
- }, {
- p1: 9,
- p2: 7
- }, {
- p1: 5,
- p2: 9
- }],
- decor: {
- name: "pic9",
- x: 265,
- y: 325
- }
- }), this.addLevel({
- name: "Rocket",
- items: [{
- id: 0,
- x: 107,
- y: 640
- }, {
- id: 1,
- x: 107,
- y: 200
- }, {
- id: 2,
- x: 107,
- y: 400
- }, {
- id: 3,
- x: 307,
- y: 400
- }, {
- id: 4,
- x: 427,
- y: 480
- }, {
- id: 5,
- x: 427,
- y: 320
- }, {
- id: 6,
- x: 547,
- y: 400
- }],
- links: [{
- p1: 1,
- p2: 5
- }, {
- p1: 3,
- p2: 2
- }, {
- p1: 2,
- p2: 1
- }, {
- p1: 0,
- p2: 2
- }, {
- p1: 4,
- p2: 0
- }, {
- p1: 3,
- p2: 4
- }, {
- p1: 5,
- p2: 3
- }, {
- p1: 4,
- p2: 6
- }, {
- p1: 5,
- p2: 4
- }, {
- p1: 6,
- p2: 5
- }],
- decor: {
- name: "pic10",
- x: 418,
- y: 499
- }
- }), this.addLevel({
- name: "P3",
- items: [{
- id: 0,
- x: 320,
- y: 360
- }, {
- id: 1,
- x: 560,
- y: 360
- }, {
- id: 2,
- x: 80,
- y: 360
- }, {
- id: 3,
- x: 440,
- y: 480
- }, {
- id: 4,
- x: 200,
- y: 480
- }, {
- id: 5,
- x: 440,
- y: 240
- }, {
- id: 6,
- x: 200,
- y: 240
- }],
- links: [{
- p1: 0,
- p2: 5
- }, {
- p1: 3,
- p2: 0
- }, {
- p1: 0,
- p2: 4
- }, {
- p1: 6,
- p2: 0
- }, {
- p1: 1,
- p2: 3
- }, {
- p1: 5,
- p2: 1
- }, {
- p1: 2,
- p2: 4
- }, {
- p1: 6,
- p2: 2
- }, {
- p1: 4,
- p2: 6
- }, {
- p1: 3,
- p2: 4
- }, {
- p1: 5,
- p2: 3
- }, {
- p1: 6,
- p2: 5
- }],
- decor: {
- name: "pic11",
- x: 78,
- y: 527
- }
- }), this.addLevel({
- name: "Romb",
- items: [{
- id: 0,
- x: 120,
- y: 560
- }, {
- id: 1,
- x: 520,
- y: 560
- }, {
- id: 2,
- x: 520,
- y: 160
- }, {
- id: 3,
- x: 120,
- y: 160
- }, {
- id: 4,
- x: 240,
- y: 440
- }, {
- id: 5,
- x: 400,
- y: 440
- }, {
- id: 6,
- x: 400,
- y: 280
- }, {
- id: 7,
- x: 240,
- y: 280
- }],
- links: [{
- p1: 5,
- p2: 7
- }, {
- p1: 5,
- p2: 1
- }, {
- p1: 2,
- p2: 3
- }, {
- p1: 1,
- p2: 2
- }, {
- p1: 0,
- p2: 1
- }, {
- p1: 3,
- p2: 0
- }, {
- p1: 7,
- p2: 3
- }, {
- p1: 5,
- p2: 4
- }, {
- p1: 6,
- p2: 5
- }, {
- p1: 7,
- p2: 6
- }, {
- p1: 4,
- p2: 7
- }],
- decor: {
- name: "pic12",
- x: 439,
- y: 573
- }
- }), this.addLevel({
- name: "P8",
- items: [{
- id: 0,
- x: 560,
- y: 400
- }, {
- id: 1,
- x: 320,
- y: 640
- }, {
- id: 2,
- x: 80,
- y: 400
- }, {
- id: 3,
- x: 320,
- y: 160
- }, {
- id: 4,
- x: 440,
- y: 400
- }, {
- id: 5,
- x: 320,
- y: 520
- }, {
- id: 6,
- x: 200,
- y: 400
- }, {
- id: 7,
- x: 320,
- y: 280
- }, {
- id: 8,
- x: 80,
- y: 160
- }, {
- id: 9,
- x: 80,
- y: 640
- }, {
- id: 10,
- x: 560,
- y: 640
- }, {
- id: 11,
- x: 560,
- y: 160
- }, {
- id: 12,
- x: 200,
- y: 280
- }, {
- id: 13,
- x: 440,
- y: 280
- }, {
- id: 14,
- x: 200,
- y: 520
- }, {
- id: 15,
- x: 440,
- y: 520
- }],
- links: [{
- p1: 5,
- p2: 6
- }, {
- p1: 4,
- p2: 5
- }, {
- p1: 7,
- p2: 4
- }, {
- p1: 6,
- p2: 7
- }, {
- p1: 14,
- p2: 2
- }, {
- p1: 1,
- p2: 14
- }, {
- p1: 15,
- p2: 1
- }, {
- p1: 0,
- p2: 15
- }, {
- p1: 13,
- p2: 0
- }, {
- p1: 3,
- p2: 13
- }, {
- p1: 12,
- p2: 3
- }, {
- p1: 2,
- p2: 12
- }, {
- p1: 3,
- p2: 8
- }, {
- p1: 11,
- p2: 3
- }, {
- p1: 0,
- p2: 11
- }, {
- p1: 10,
- p2: 0
- }, {
- p1: 1,
- p2: 10
- }, {
- p1: 9,
- p2: 1
- }, {
- p1: 2,
- p2: 9
- }, {
- p1: 8,
- p2: 2
- }, {
- p1: 6,
- p2: 12
- }, {
- p1: 14,
- p2: 6
- }, {
- p1: 5,
- p2: 14
- }, {
- p1: 15,
- p2: 5
- }, {
- p1: 4,
- p2: 15
- }, {
- p1: 13,
- p2: 4
- }, {
- p1: 7,
- p2: 13
- }, {
- p1: 12,
- p2: 7
- }],
- decor: {
- name: "pic13",
- x: 272,
- y: 315
- }
- }), this.addLevel({
- name: "House3",
- items: [{
- id: 0,
- x: 240,
- y: 280
- }, {
- id: 1,
- x: 400,
- y: 280
- }, {
- id: 2,
- x: 80,
- y: 600
- }, {
- id: 3,
- x: 80,
- y: 400
- }, {
- id: 4,
- x: 560,
- y: 600
- }, {
- id: 5,
- x: 560,
- y: 400
- }, {
- id: 6,
- x: 240,
- y: 400
- }, {
- id: 7,
- x: 400,
- y: 400
- }, {
- id: 8,
- x: 240,
- y: 600
- }, {
- id: 9,
- x: 400,
- y: 600
- }],
- links: [{
- p1: 1,
- p2: 5
- }, {
- p1: 6,
- p2: 1
- }, {
- p1: 0,
- p2: 7
- }, {
- p1: 3,
- p2: 0
- }, {
- p1: 8,
- p2: 7
- }, {
- p1: 6,
- p2: 9
- }, {
- p1: 5,
- p2: 7
- }, {
- p1: 4,
- p2: 5
- }, {
- p1: 9,
- p2: 4
- }, {
- p1: 2,
- p2: 8
- }, {
- p1: 3,
- p2: 2
- }, {
- p1: 6,
- p2: 3
- }, {
- p1: 8,
- p2: 6
- }, {
- p1: 9,
- p2: 8
- }, {
- p1: 7,
- p2: 9
- }],
- decor: {
- name: "pic14",
- x: 428,
- y: 109
- }
- }), this.addLevel({
- name: "P6",
- items: [{
- id: 0,
- x: 380,
- y: 460
- }, {
- id: 1,
- x: 260,
- y: 460
- }, {
- id: 2,
- x: 380,
- y: 260
- }, {
- id: 3,
- x: 260,
- y: 260
- }, {
- id: 4,
- x: 440,
- y: 360
- }, {
- id: 5,
- x: 320,
- y: 560
- }, {
- id: 6,
- x: 200,
- y: 360
- }, {
- id: 7,
- x: 320,
- y: 160
- }, {
- id: 8,
- x: 560,
- y: 360
- }, {
- id: 9,
- x: 440,
- y: 160
- }, {
- id: 10,
- x: 440,
- y: 560
- }, {
- id: 11,
- x: 80,
- y: 360
- }, {
- id: 12,
- x: 320,
- y: 360
- }, {
- id: 13,
- x: 200,
- y: 160
- }, {
- id: 14,
- x: 200,
- y: 560
- }],
- links: [{
- p1: 0,
- p2: 10
- }, {
- p1: 12,
- p2: 0
- }, {
- p1: 1,
- p2: 14
- }, {
- p1: 12,
- p2: 1
- }, {
- p1: 1,
- p2: 6
- }, {
- p1: 5,
- p2: 1
- }, {
- p1: 0,
- p2: 5
- }, {
- p1: 4,
- p2: 0
- }, {
- p1: 2,
- p2: 4
- }, {
- p1: 7,
- p2: 2
- }, {
- p1: 2,
- p2: 9
- }, {
- p1: 12,
- p2: 2
- }, {
- p1: 3,
- p2: 7
- }, {
- p1: 6,
- p2: 3
- }, {
- p1: 3,
- p2: 13
- }, {
- p1: 12,
- p2: 3
- }, {
- p1: 8,
- p2: 10
- }, {
- p1: 9,
- p2: 8
- }, {
- p1: 14,
- p2: 11
- }, {
- p1: 11,
- p2: 13
- }],
- decor: {
- name: "pic15",
- x: 374,
- y: 553
- }
- }), this.addLevel({
- name: "P14",
- items: [{
- id: 0,
- x: 440,
- y: 520
- }, {
- id: 1,
- x: 200,
- y: 520
- }, {
- id: 2,
- x: 440,
- y: 360
- }, {
- id: 3,
- x: 200,
- y: 360
- }, {
- id: 4,
- x: 440,
- y: 200
- }, {
- id: 5,
- x: 440,
- y: 680
- }, {
- id: 6,
- x: 560,
- y: 600
- }, {
- id: 7,
- x: 560,
- y: 440
- }, {
- id: 8,
- x: 560,
- y: 280
- }, {
- id: 9,
- x: 320,
- y: 440
- }, {
- id: 10,
- x: 200,
- y: 680
- }, {
- id: 11,
- x: 320,
- y: 600
- }, {
- id: 12,
- x: 80,
- y: 600
- }, {
- id: 13,
- x: 80,
- y: 440
- }, {
- id: 14,
- x: 200,
- y: 200
- }, {
- id: 15,
- x: 320,
- y: 280
- }, {
- id: 16,
- x: 80,
- y: 280
- }],
- links: [{
- p1: 3,
- p2: 15
- }, {
- p1: 13,
- p2: 3
- }, {
- p1: 3,
- p2: 16
- }, {
- p1: 9,
- p2: 3
- }, {
- p1: 2,
- p2: 8
- }, {
- p1: 9,
- p2: 2
- }, {
- p1: 2,
- p2: 15
- }, {
- p1: 7,
- p2: 2
- }, {
- p1: 0,
- p2: 7
- }, {
- p1: 11,
- p2: 0
- }, {
- p1: 0,
- p2: 6
- }, {
- p1: 9,
- p2: 0
- }, {
- p1: 1,
- p2: 9
- }, {
- p1: 12,
- p2: 1
- }, {
- p1: 1,
- p2: 13
- }, {
- p1: 11,
- p2: 1
- }, {
- p1: 5,
- p2: 6
- }, {
- p1: 11,
- p2: 5
- }, {
- p1: 4,
- p2: 8
- }, {
- p1: 15,
- p2: 4
- }, {
- p1: 8,
- p2: 15
- }, {
- p1: 7,
- p2: 8
- }, {
- p1: 6,
- p2: 7
- }, {
- p1: 11,
- p2: 6
- }, {
- p1: 10,
- p2: 11
- }, {
- p1: 12,
- p2: 10
- }, {
- p1: 14,
- p2: 15
- }, {
- p1: 16,
- p2: 14
- }, {
- p1: 12,
- p2: 13
- }, {
- p1: 11,
- p2: 12
- }, {
- p1: 9,
- p2: 11
- }, {
- p1: 16,
- p2: 13
- }, {
- p1: 15,
- p2: 16
- }, {
- p1: 9,
- p2: 15
- }],
- decor: {
- name: "pic16",
- x: 246,
- y: 108
- }
- }), this.addLevel({
- name: "Arrow Quad",
- items: [{
- id: 0,
- x: 480,
- y: 560
- }, {
- id: 1,
- x: 160,
- y: 560
- }, {
- id: 2,
- x: 480,
- y: 280
- }, {
- id: 3,
- x: 160,
- y: 280
- }],
- links: [{
- p1: 1,
- p2: 3,
- arrow: !0
- }, {
- p1: 0,
- p2: 1,
- arrow: !0
- }, {
- p1: 2,
- p2: 0,
- arrow: !0
- }, {
- p1: 3,
- p2: 2,
- arrow: !0
- }],
- decor: {
- name: "pic17",
- x: 256,
- y: 301
- }
- }), this.addLevel({
- name: "Spiral",
- items: [{
- id: 0,
- x: 560,
- y: 560
- }, {
- id: 1,
- x: 240,
- y: 320
- }, {
- id: 2,
- x: 240,
- y: 480
- }, {
- id: 3,
- x: 480,
- y: 480
- }, {
- id: 4,
- x: 160,
- y: 560
- }, {
- id: 5,
- x: 480,
- y: 240
- }, {
- id: 6,
- x: 160,
- y: 240
- }, {
- id: 7,
- x: 80,
- y: 160
- }, {
- id: 8,
- x: 80,
- y: 640
- }, {
- id: 9,
- x: 560,
- y: 640
- }, {
- id: 10,
- x: 560,
- y: 160
- }],
- links: [{
- p1: 2,
- p2: 1,
- arrow: !0
- }, {
- p1: 10,
- p2: 7,
- arrow: !0
- }, {
- p1: 3,
- p2: 2
- }, {
- p1: 5,
- p2: 3
- }, {
- p1: 6,
- p2: 5
- }, {
- p1: 0,
- p2: 10
- }, {
- p1: 4,
- p2: 6
- }, {
- p1: 0,
- p2: 4
- }, {
- p1: 9,
- p2: 0
- }, {
- p1: 8,
- p2: 7
- }, {
- p1: 9,
- p2: 8
- }],
- decor: {
- name: "pic18",
- x: 284,
- y: 278
- }
- }), this.addLevel({
- name: "Arrow Romb",
- items: [{
- id: 0,
- x: 280,
- y: 600
- }, {
- id: 1,
- x: 360,
- y: 200
- }, {
- id: 2,
- x: 480,
- y: 400
- }, {
- id: 3,
- x: 160,
- y: 400
- }, {
- id: 4,
- x: 480,
- y: 600
- }, {
- id: 5,
- x: 160,
- y: 600
- }, {
- id: 6,
- x: 480,
- y: 200
- }, {
- id: 7,
- x: 160,
- y: 200
- }],
- links: [{
- p1: 2,
- p2: 1,
- arrow: !0
- }, {
- p1: 0,
- p2: 3,
- arrow: !0
- }, {
- p1: 2,
- p2: 0
- }, {
- p1: 3,
- p2: 1
- }, {
- p1: 3,
- p2: 2
- }, {
- p1: 5,
- p2: 3
- }, {
- p1: 0,
- p2: 5
- }, {
- p1: 4,
- p2: 0
- }, {
- p1: 2,
- p2: 4
- }, {
- p1: 6,
- p2: 2
- }, {
- p1: 1,
- p2: 6
- }, {
- p1: 7,
- p2: 1
- }, {
- p1: 3,
- p2: 7
- }],
- decor: {
- name: "pic19",
- x: 196,
- y: 399
- }
- }), this.addLevel({
- name: "House2",
- items: [{
- id: 0,
- x: 320,
- y: 560
- }, {
- id: 1,
- x: 320,
- y: 360
- }, {
- id: 2,
- x: 520,
- y: 560
- }, {
- id: 3,
- x: 120,
- y: 560
- }, {
- id: 4,
- x: 520,
- y: 360
- }, {
- id: 5,
- x: 120,
- y: 360
- }, {
- id: 6,
- x: 320,
- y: 200
- }],
- links: [{
- p1: 5,
- p2: 6,
- arrow: !0
- }, {
- p1: 4,
- p2: 6,
- arrow: !0
- }, {
- p1: 1,
- p2: 4,
- arrow: !0
- }, {
- p1: 1,
- p2: 5,
- arrow: !0
- }, {
- p1: 1,
- p2: 0
- }, {
- p1: 0,
- p2: 5
- }, {
- p1: 4,
- p2: 0
- }, {
- p1: 2,
- p2: 4
- }, {
- p1: 0,
- p2: 2
- }, {
- p1: 3,
- p2: 0
- }, {
- p1: 5,
- p2: 3
- }, {
- p1: 6,
- p2: 1
- }],
- decor: {
- name: "pic20",
- x: 409,
- y: 132
- }
- }), this.addLevel({
- name: "Jail",
- items: [{
- id: 0,
- x: 320,
- y: 160
- }, {
- id: 1,
- x: 320,
- y: 640
- }, {
- id: 2,
- x: 320,
- y: 560
- }, {
- id: 3,
- x: 320,
- y: 240
- }, {
- id: 4,
- x: 440,
- y: 400
- }, {
- id: 5,
- x: 200,
- y: 400
- }, {
- id: 6,
- x: 520,
- y: 560
- }, {
- id: 7,
- x: 120,
- y: 560
- }, {
- id: 8,
- x: 520,
- y: 240
- }, {
- id: 9,
- x: 120,
- y: 240
- }],
- links: [{
- p1: 4,
- p2: 2,
- arrow: !0
- }, {
- p1: 3,
- p2: 4,
- arrow: !0
- }, {
- p1: 5,
- p2: 3,
- arrow: !0
- }, {
- p1: 2,
- p2: 5,
- arrow: !0
- }, {
- p1: 9,
- p2: 7,
- arrow: !0
- }, {
- p1: 6,
- p2: 8,
- arrow: !0
- }, {
- p1: 9,
- p2: 6
- }, {
- p1: 7,
- p2: 8
- }, {
- p1: 1,
- p2: 6
- }, {
- p1: 7,
- p2: 1
- }, {
- p1: 2,
- p2: 6
- }, {
- p1: 7,
- p2: 2
- }, {
- p1: 0,
- p2: 9
- }, {
- p1: 8,
- p2: 0
- }, {
- p1: 3,
- p2: 8
- }, {
- p1: 9,
- p2: 3
- }],
- decor: {
- name: "pic21",
- x: 423,
- y: 566
- }
- }), this.addLevel({
- name: "P4 copy",
- items: [{
- id: 0,
- x: 560,
- y: 600
- }, {
- id: 1,
- x: 400,
- y: 600
- }, {
- id: 2,
- x: 240,
- y: 600
- }, {
- id: 3,
- x: 80,
- y: 600
- }, {
- id: 4,
- x: 480,
- y: 480
- }, {
- id: 5,
- x: 320,
- y: 480
- }, {
- id: 6,
- x: 160,
- y: 480
- }, {
- id: 7,
- x: 400,
- y: 360
- }, {
- id: 8,
- x: 320,
- y: 240
- }, {
- id: 9,
- x: 240,
- y: 360
- }],
- links: [{
- p1: 7,
- p2: 9,
- arrow: !0
- }, {
- p1: 5,
- p2: 4,
- arrow: !0
- }, {
- p1: 6,
- p2: 5,
- arrow: !0
- }, {
- p1: 1,
- p2: 0,
- arrow: !0
- }, {
- p1: 2,
- p2: 1,
- arrow: !0
- }, {
- p1: 3,
- p2: 2,
- arrow: !0
- }, {
- p1: 4,
- p2: 0
- }, {
- p1: 1,
- p2: 4
- }, {
- p1: 5,
- p2: 1
- }, {
- p1: 2,
- p2: 5
- }, {
- p1: 6,
- p2: 2
- }, {
- p1: 3,
- p2: 6
- }, {
- p1: 7,
- p2: 4
- }, {
- p1: 5,
- p2: 7
- }, {
- p1: 5,
- p2: 9
- }, {
- p1: 9,
- p2: 6
- }, {
- p1: 7,
- p2: 8
- }, {
- p1: 8,
- p2: 9
- }],
- decor: {
- name: "pic22",
- x: 372,
- y: 108
- }
- }), this.addLevel({
- name: "Romb2",
- items: [{
- id: 0,
- x: 160,
- y: 480
- }, {
- id: 1,
- x: 480,
- y: 480
- }, {
- id: 2,
- x: 480,
- y: 320
- }, {
- id: 3,
- x: 80,
- y: 400
- }, {
- id: 4,
- x: 160,
- y: 320
- }, {
- id: 5,
- x: 320,
- y: 640
- }, {
- id: 6,
- x: 320,
- y: 160
- }, {
- id: 7,
- x: 560,
- y: 400
- }, {
- id: 8,
- x: 320,
- y: 520
- }, {
- id: 9,
- x: 320,
- y: 280
- }],
- links: [{
- p1: 8,
- p2: 5,
- arrow: !0
- }, {
- p1: 9,
- p2: 8,
- arrow: !0
- }, {
- p1: 6,
- p2: 9,
- arrow: !0
- }, {
- p1: 2,
- p2: 1
- }, {
- p1: 5,
- p2: 1
- }, {
- p1: 0,
- p2: 5
- }, {
- p1: 6,
- p2: 2
- }, {
- p1: 4,
- p2: 6
- }, {
- p1: 2,
- p2: 9
- }, {
- p1: 7,
- p2: 2
- }, {
- p1: 1,
- p2: 7
- }, {
- p1: 8,
- p2: 1
- }, {
- p1: 4,
- p2: 0
- }, {
- p1: 4,
- p2: 9
- }, {
- p1: 3,
- p2: 4
- }, {
- p1: 0,
- p2: 3
- }, {
- p1: 8,
- p2: 0
- }],
- decor: {
- name: "pic23",
- x: 418,
- y: 99
- }
- }), this.addLevel({
- name: "P13 copy",
- items: [{
- id: 0,
- x: 440,
- y: 480
- }, {
- id: 1,
- x: 480,
- y: 560
- }, {
- id: 2,
- x: 520,
- y: 480
- }, {
- id: 3,
- x: 380,
- y: 520
- }, {
- id: 4,
- x: 200,
- y: 480
- }, {
- id: 5,
- x: 280,
- y: 480
- }, {
- id: 6,
- x: 240,
- y: 560
- }, {
- id: 7,
- x: 160,
- y: 560
- }, {
- id: 8,
- x: 120,
- y: 480
- }, {
- id: 9,
- x: 320,
- y: 240
- }, {
- id: 10,
- x: 240,
- y: 240
- }, {
- id: 11,
- x: 280,
- y: 320
- }, {
- id: 12,
- x: 380,
- y: 280
- }, {
- id: 13,
- x: 200,
- y: 640
- }, {
- id: 14,
- x: 80,
- y: 400
- }, {
- id: 15,
- x: 200,
- y: 400
- }, {
- id: 16,
- x: 440,
- y: 640
- }, {
- id: 17,
- x: 560,
- y: 400
- }, {
- id: 18,
- x: 480,
- y: 400
- }, {
- id: 19,
- x: 400,
- y: 400
- }, {
- id: 20,
- x: 320,
- y: 400
- }, {
- id: 21,
- x: 440,
- y: 160
- }, {
- id: 22,
- x: 360,
- y: 160
- }, {
- id: 23,
- x: 280,
- y: 160
- }, {
- id: 24,
- x: 200,
- y: 160
- }],
- links: [{
- p1: 20,
- p2: 11,
- arrow: !0
- }, {
- p1: 20,
- p2: 19,
- arrow: !0
- }, {
- p1: 20,
- p2: 15,
- arrow: !0
- }, {
- p1: 23,
- p2: 10
- }, {
- p1: 3,
- p2: 1
- }, {
- p1: 19,
- p2: 3
- }, {
- p1: 2,
- p2: 18
- }, {
- p1: 0,
- p2: 2
- }, {
- p1: 18,
- p2: 0
- }, {
- p1: 0,
- p2: 19
- }, {
- p1: 1,
- p2: 0
- }, {
- p1: 2,
- p2: 17
- }, {
- p1: 1,
- p2: 2
- }, {
- p1: 16,
- p2: 1
- }, {
- p1: 3,
- p2: 16
- }, {
- p1: 20,
- p2: 3
- }, {
- p1: 18,
- p2: 17
- }, {
- p1: 19,
- p2: 18
- }, {
- p1: 6,
- p2: 4
- }, {
- p1: 7,
- p2: 6
- }, {
- p1: 4,
- p2: 7
- }, {
- p1: 4,
- p2: 5
- }, {
- p1: 8,
- p2: 4
- }, {
- p1: 15,
- p2: 5
- }, {
- p1: 8,
- p2: 15
- }, {
- p1: 7,
- p2: 13
- }, {
- p1: 8,
- p2: 7
- }, {
- p1: 14,
- p2: 8
- }, {
- p1: 5,
- p2: 20
- }, {
- p1: 6,
- p2: 5
- }, {
- p1: 13,
- p2: 6
- }, {
- p1: 12,
- p2: 11
- }, {
- p1: 22,
- p2: 12
- }, {
- p1: 9,
- p2: 10
- }, {
- p1: 22,
- p2: 21
- }, {
- p1: 23,
- p2: 22
- }, {
- p1: 24,
- p2: 23
- }, {
- p1: 23,
- p2: 9
- }, {
- p1: 9,
- p2: 22
- }, {
- p1: 11,
- p2: 9
- }, {
- p1: 10,
- p2: 24
- }, {
- p1: 11,
- p2: 10
- }, {
- p1: 12,
- p2: 21
- }, {
- p1: 20,
- p2: 12
- }, {
- p1: 15,
- p2: 14
- }],
- decor: {
- name: "pic24",
- x: 385,
- y: 186
- }
- }), this.addLevel({
- name: "Doit",
- items: [{
- id: 0,
- x: 320,
- y: 240
- }, {
- id: 1,
- x: 480,
- y: 240
- }, {
- id: 2,
- x: 480,
- y: 560
- }, {
- id: 3,
- x: 160,
- y: 560
- }, {
- id: 4,
- x: 160,
- y: 240
- }, {
- id: 5,
- x: 240,
- y: 480
- }, {
- id: 6,
- x: 400,
- y: 480
- }, {
- id: 7,
- x: 400,
- y: 320
- }, {
- id: 8,
- x: 240,
- y: 320
- }],
- links: [{
- p1: 4,
- p2: 3,
- arrow: !0
- }, {
- p1: 1,
- p2: 2,
- arrow: !0
- }, {
- p1: 5,
- p2: 8,
- arrow: !0
- }, {
- p1: 6,
- p2: 5,
- arrow: !0
- }, {
- p1: 7,
- p2: 6,
- arrow: !0
- }, {
- p1: 7,
- p2: 8,
- arrow: !0
- }, {
- p1: 0,
- p2: 7
- }, {
- p1: 0,
- p2: 8
- }, {
- p1: 8,
- p2: 6
- }, {
- p1: 5,
- p2: 7
- }, {
- p1: 1,
- p2: 7
- }, {
- p1: 6,
- p2: 2
- }, {
- p1: 3,
- p2: 5
- }, {
- p1: 8,
- p2: 4
- }],
- decor: {
- name: "pic25",
- x: 243,
- y: 489
- }
- }), this.addLevel({
- name: "P9 copy",
- items: [{
- id: 0,
- x: 421,
- y: 400
- }, {
- id: 1,
- x: 221,
- y: 400
- }, {
- id: 2,
- x: 320,
- y: 520
- }, {
- id: 3,
- x: 320,
- y: 280
- }, {
- id: 4,
- x: 600,
- y: 400
- }, {
- id: 5,
- x: 40,
- y: 400
- }, {
- id: 6,
- x: 520,
- y: 520
- }, {
- id: 7,
- x: 120,
- y: 520
- }, {
- id: 8,
- x: 520,
- y: 280
- }, {
- id: 9,
- x: 120,
- y: 280
- }],
- links: [{
- p1: 8,
- p2: 3,
- arrow: !0
- }, {
- p1: 9,
- p2: 3,
- arrow: !0
- }, {
- p1: 2,
- p2: 6,
- arrow: !0
- }, {
- p1: 2,
- p2: 7,
- arrow: !0
- }, {
- p1: 0,
- p2: 6
- }, {
- p1: 0,
- p2: 2
- }, {
- p1: 0,
- p2: 8
- }, {
- p1: 3,
- p2: 0
- }, {
- p1: 1,
- p2: 7
- }, {
- p1: 1,
- p2: 9
- }, {
- p1: 1,
- p2: 3
- }, {
- p1: 2,
- p2: 1
- }, {
- p1: 3,
- p2: 2
- }, {
- p1: 6,
- p2: 8
- }, {
- p1: 4,
- p2: 6
- }, {
- p1: 8,
- p2: 4
- }, {
- p1: 5,
- p2: 7
- }, {
- p1: 9,
- p2: 5
- }, {
- p1: 7,
- p2: 9
- }],
- decor: {
- name: "pic26",
- x: 259,
- y: 58
- }
- }), this.addLevel({
- name: "P11 copy",
- items: [{
- id: 0,
- x: 320,
- y: 293
- }, {
- id: 1,
- x: 380,
- y: 260
- }, {
- id: 2,
- x: 260,
- y: 260
- }, {
- id: 3,
- x: 440,
- y: 572
- }, {
- id: 4,
- x: 531,
- y: 520
- }, {
- id: 5,
- x: 200,
- y: 572
- }, {
- id: 6,
- x: 109,
- y: 520
- }, {
- id: 7,
- x: 320,
- y: 640
- }, {
- id: 8,
- x: 600,
- y: 640
- }, {
- id: 9,
- x: 40,
- y: 640
- }, {
- id: 10,
- x: 320,
- y: 160
- }, {
- id: 11,
- x: 200,
- y: 640
- }, {
- id: 12,
- x: 440,
- y: 640
- }, {
- id: 13,
- x: 440,
- y: 360
- }, {
- id: 14,
- x: 200,
- y: 360
- }],
- links: [{
- p1: 1,
- p2: 2,
- arrow: !0
- }, {
- p1: 13,
- p2: 14,
- arrow: !0
- }, {
- p1: 11,
- p2: 9,
- arrow: !0
- }, {
- p1: 7,
- p2: 11,
- arrow: !0
- }, {
- p1: 12,
- p2: 7,
- arrow: !0
- }, {
- p1: 8,
- p2: 12,
- arrow: !0
- }, {
- p1: 4,
- p2: 13
- }, {
- p1: 8,
- p2: 4
- }, {
- p1: 6,
- p2: 14
- }, {
- p1: 9,
- p2: 6
- }, {
- p1: 1,
- p2: 10
- }, {
- p1: 13,
- p2: 1
- }, {
- p1: 2,
- p2: 10
- }, {
- p1: 14,
- p2: 2
- }, {
- p1: 3,
- p2: 13
- }, {
- p1: 12,
- p2: 3
- }, {
- p1: 5,
- p2: 14
- }, {
- p1: 11,
- p2: 5
- }, {
- p1: 7,
- p2: 13
- }, {
- p1: 7,
- p2: 14
- }, {
- p1: 0,
- p2: 1
- }, {
- p1: 14,
- p2: 0
- }, {
- p1: 0,
- p2: 2
- }, {
- p1: 13,
- p2: 0
- }, {
- p1: 3,
- p2: 4
- }, {
- p1: 7,
- p2: 3
- }, {
- p1: 5,
- p2: 6
- }, {
- p1: 7,
- p2: 5
- }, {
- p1: 12,
- p2: 4
- }, {
- p1: 11,
- p2: 6
- }],
- decor: {
- name: "pic27",
- x: 378,
- y: 101
- }
- }), this.addLevel({
- name: "P10",
- items: [{
- id: 0,
- x: 480,
- y: 400
- }, {
- id: 1,
- x: 560,
- y: 400
- }, {
- id: 2,
- x: 560,
- y: 480
- }, {
- id: 3,
- x: 560,
- y: 560
- }, {
- id: 4,
- x: 480,
- y: 560
- }, {
- id: 5,
- x: 400,
- y: 480
- }, {
- id: 6,
- x: 400,
- y: 560
- }, {
- id: 7,
- x: 320,
- y: 560
- }, {
- id: 8,
- x: 240,
- y: 560
- }, {
- id: 9,
- x: 240,
- y: 480
- }, {
- id: 10,
- x: 240,
- y: 320
- }, {
- id: 11,
- x: 400,
- y: 320
- }, {
- id: 12,
- x: 400,
- y: 400
- }, {
- id: 13,
- x: 320,
- y: 400
- }, {
- id: 14,
- x: 240,
- y: 400
- }, {
- id: 15,
- x: 160,
- y: 400
- }, {
- id: 16,
- x: 80,
- y: 400
- }, {
- id: 17,
- x: 80,
- y: 320
- }, {
- id: 18,
- x: 400,
- y: 240
- }, {
- id: 19,
- x: 320,
- y: 240
- }, {
- id: 20,
- x: 160,
- y: 240
- }, {
- id: 21,
- x: 80,
- y: 240
- }, {
- id: 22,
- x: 240,
- y: 240
- }],
- links: [{
- p1: 9,
- p2: 14,
- arrow: !0
- }, {
- p1: 10,
- p2: 14,
- arrow: !0
- }, {
- p1: 14,
- p2: 15,
- arrow: !0
- }, {
- p1: 14,
- p2: 13,
- arrow: !0
- }, {
- p1: 12,
- p2: 11,
- arrow: !0
- }, {
- p1: 0,
- p2: 12,
- arrow: !0
- }, {
- p1: 13,
- p2: 12,
- arrow: !0
- }, {
- p1: 12,
- p2: 5,
- arrow: !0
- }, {
- p1: 5,
- p2: 4
- }, {
- p1: 0,
- p2: 5
- }, {
- p1: 2,
- p2: 0
- }, {
- p1: 4,
- p2: 2
- }, {
- p1: 7,
- p2: 9
- }, {
- p1: 5,
- p2: 7
- }, {
- p1: 13,
- p2: 5
- }, {
- p1: 9,
- p2: 13
- }, {
- p1: 13,
- p2: 10
- }, {
- p1: 11,
- p2: 13
- }, {
- p1: 19,
- p2: 11
- }, {
- p1: 10,
- p2: 19
- }, {
- p1: 15,
- p2: 17
- }, {
- p1: 10,
- p2: 15
- }, {
- p1: 20,
- p2: 10
- }, {
- p1: 17,
- p2: 20
- }, {
- p1: 4,
- p2: 6
- }, {
- p1: 3,
- p2: 4
- }, {
- p1: 2,
- p2: 3
- }, {
- p1: 1,
- p2: 2
- }, {
- p1: 0,
- p2: 1
- }, {
- p1: 6,
- p2: 5
- }, {
- p1: 7,
- p2: 6
- }, {
- p1: 8,
- p2: 7
- }, {
- p1: 9,
- p2: 8
- }, {
- p1: 18,
- p2: 11
- }, {
- p1: 19,
- p2: 18
- }, {
- p1: 22,
- p2: 19
- }, {
- p1: 17,
- p2: 21
- }, {
- p1: 16,
- p2: 17
- }, {
- p1: 15,
- p2: 16
- }, {
- p1: 22,
- p2: 10
- }, {
- p1: 20,
- p2: 22
- }, {
- p1: 21,
- p2: 20
- }],
- decor: {
- name: "pic28",
- x: 410,
- y: 103
- }
- }), this.addLevel({
- name: "Krest",
- items: [{
- id: 0,
- x: 160,
- y: 320
- }, {
- id: 1,
- x: 160,
- y: 440
- }, {
- id: 2,
- x: 280,
- y: 560
- }, {
- id: 3,
- x: 400,
- y: 560
- }, {
- id: 4,
- x: 520,
- y: 440
- }, {
- id: 5,
- x: 520,
- y: 320
- }, {
- id: 6,
- x: 400,
- y: 200
- }, {
- id: 7,
- x: 280,
- y: 200
- }, {
- id: 8,
- x: 280,
- y: 440
- }, {
- id: 9,
- x: 400,
- y: 440
- }, {
- id: 10,
- x: 280,
- y: 320
- }, {
- id: 11,
- x: 400,
- y: 320
- }],
- links: [{
- p1: 6,
- p2: 11,
- arrow: !0
- }, {
- p1: 9,
- p2: 3,
- arrow: !0
- }, {
- p1: 5,
- p2: 4,
- arrow: !0
- }, {
- p1: 10,
- p2: 8,
- arrow: !0
- }, {
- p1: 11,
- p2: 9,
- arrow: !0
- }, {
- p1: 11,
- p2: 7
- }, {
- p1: 4,
- p2: 11
- }, {
- p1: 8,
- p2: 3
- }, {
- p1: 8,
- p2: 11
- }, {
- p1: 3,
- p2: 4
- }, {
- p1: 0,
- p2: 7
- }, {
- p1: 2,
- p2: 3
- }, {
- p1: 8,
- p2: 2
- }, {
- p1: 0,
- p2: 10
- }, {
- p1: 1,
- p2: 0
- }, {
- p1: 8,
- p2: 1
- }, {
- p1: 4,
- p2: 9
- }, {
- p1: 11,
- p2: 5
- }, {
- p1: 7,
- p2: 6
- }, {
- p1: 10,
- p2: 7
- }, {
- p1: 9,
- p2: 8
- }, {
- p1: 10,
- p2: 11
- }],
- decor: {
- name: "pic29",
- x: 82,
- y: 485
- }
- }), this.addLevel({
- name: "Two Quads",
- items: [{
- id: 0,
- x: 120,
- y: 240
- }, {
- id: 1,
- x: 360,
- y: 160
- }, {
- id: 2,
- x: 520,
- y: 320
- }, {
- id: 3,
- x: 200,
- y: 640
- }, {
- id: 4,
- x: 440,
- y: 560
- }, {
- id: 5,
- x: 200,
- y: 480
- }, {
- id: 6,
- x: 280,
- y: 560
- }, {
- id: 7,
- x: 120,
- y: 560
- }, {
- id: 8,
- x: 120,
- y: 400
- }, {
- id: 9,
- x: 360,
- y: 320
- }, {
- id: 10,
- x: 440,
- y: 400
- }, {
- id: 11,
- x: 280,
- y: 400
- }, {
- id: 12,
- x: 440,
- y: 240
- }, {
- id: 13,
- x: 280,
- y: 240
- }],
- links: [{
- p1: 8,
- p2: 7,
- arrow: !0
- }, {
- p1: 6,
- p2: 7,
- arrow: !0
- }, {
- p1: 12,
- p2: 10,
- arrow: !0
- }, {
- p1: 12,
- p2: 13,
- arrow: !0
- }, {
- p1: 11,
- p2: 10,
- arrow: !0
- }, {
- p1: 8,
- p2: 11,
- arrow: !0
- }, {
- p1: 11,
- p2: 13,
- arrow: !0
- }, {
- p1: 6,
- p2: 11,
- arrow: !0
- }, {
- p1: 0,
- p2: 13
- }, {
- p1: 8,
- p2: 0
- }, {
- p1: 4,
- p2: 10
- }, {
- p1: 6,
- p2: 4
- }, {
- p1: 3,
- p2: 7
- }, {
- p1: 6,
- p2: 3
- }, {
- p1: 10,
- p2: 6
- }, {
- p1: 13,
- p2: 8
- }, {
- p1: 1,
- p2: 13
- }, {
- p1: 12,
- p2: 1
- }, {
- p1: 2,
- p2: 12
- }, {
- p1: 10,
- p2: 2
- }, {
- p1: 9,
- p2: 10
- }, {
- p1: 13,
- p2: 9
- }, {
- p1: 9,
- p2: 12
- }, {
- p1: 11,
- p2: 9
- }, {
- p1: 5,
- p2: 6
- }, {
- p1: 8,
- p2: 5
- }, {
- p1: 5,
- p2: 7
- }, {
- p1: 11,
- p2: 5
- }],
- decor: {
- name: "pic30",
- x: 426,
- y: 514
- }
- }), this.addLevel({
- name: "P12 copy",
- items: [{
- id: 0,
- x: 400,
- y: 640
- }, {
- id: 1,
- x: 240,
- y: 640
- }, {
- id: 2,
- x: 440,
- y: 200
- }, {
- id: 3,
- x: 200,
- y: 200
- }, {
- id: 4,
- x: 560,
- y: 280
- }, {
- id: 5,
- x: 440,
- y: 280
- }, {
- id: 6,
- x: 200,
- y: 280
- }, {
- id: 7,
- x: 80,
- y: 280
- }, {
- id: 8,
- x: 440,
- y: 360
- }, {
- id: 9,
- x: 320,
- y: 360
- }, {
- id: 10,
- x: 200,
- y: 360
- }, {
- id: 11,
- x: 560,
- y: 440
- }, {
- id: 12,
- x: 440,
- y: 440
- }, {
- id: 13,
- x: 320,
- y: 440
- }, {
- id: 14,
- x: 200,
- y: 440
- }, {
- id: 15,
- x: 80,
- y: 440
- }, {
- id: 16,
- x: 560,
- y: 520
- }, {
- id: 17,
- x: 440,
- y: 520
- }, {
- id: 18,
- x: 200,
- y: 520
- }, {
- id: 19,
- x: 80,
- y: 520
- }],
- links: [{
- p1: 4,
- p2: 11,
- arrow: !0
- }, {
- p1: 15,
- p2: 7,
- arrow: !0
- }, {
- p1: 0,
- p2: 1,
- arrow: !0
- }, {
- p1: 18,
- p2: 17,
- arrow: !0
- }, {
- p1: 16,
- p2: 12
- }, {
- p1: 2,
- p2: 4
- }, {
- p1: 5,
- p2: 2
- }, {
- p1: 3,
- p2: 6
- }, {
- p1: 7,
- p2: 3
- }, {
- p1: 0,
- p2: 16
- }, {
- p1: 19,
- p2: 1
- }, {
- p1: 13,
- p2: 17
- }, {
- p1: 18,
- p2: 13
- }, {
- p1: 9,
- p2: 12
- }, {
- p1: 9,
- p2: 14
- }, {
- p1: 9,
- p2: 5
- }, {
- p1: 6,
- p2: 9
- }, {
- p1: 10,
- p2: 7
- }, {
- p1: 15,
- p2: 10
- }, {
- p1: 6,
- p2: 7
- }, {
- p1: 10,
- p2: 6
- }, {
- p1: 14,
- p2: 10
- }, {
- p1: 8,
- p2: 4
- }, {
- p1: 11,
- p2: 8
- }, {
- p1: 5,
- p2: 4
- }, {
- p1: 8,
- p2: 5
- }, {
- p1: 12,
- p2: 8
- }, {
- p1: 11,
- p2: 16
- }, {
- p1: 12,
- p2: 11
- }, {
- p1: 12,
- p2: 17
- }, {
- p1: 13,
- p2: 12
- }, {
- p1: 14,
- p2: 13
- }, {
- p1: 14,
- p2: 18
- }, {
- p1: 15,
- p2: 14
- }, {
- p1: 19,
- p2: 15
- }, {
- p1: 18,
- p2: 19
- }, {
- p1: 16,
- p2: 17
- }],
- decor: {
- name: "pic31",
- x: 200,
- y: 146
- }
- }), this.addLevel({
- name: "P7",
- items: [{
- id: 0,
- x: 560,
- y: 520
- }, {
- id: 1,
- x: 320,
- y: 520
- }, {
- id: 2,
- x: 440,
- y: 520
- }, {
- id: 3,
- x: 80,
- y: 520
- }, {
- id: 4,
- x: 200,
- y: 520
- }, {
- id: 5,
- x: 560,
- y: 400
- }, {
- id: 6,
- x: 320,
- y: 400
- }, {
- id: 7,
- x: 440,
- y: 400
- }, {
- id: 8,
- x: 80,
- y: 400
- }, {
- id: 9,
- x: 200,
- y: 400
- }, {
- id: 10,
- x: 560,
- y: 280
- }, {
- id: 11,
- x: 320,
- y: 280
- }, {
- id: 12,
- x: 440,
- y: 280
- }, {
- id: 13,
- x: 560,
- y: 160
- }, {
- id: 14,
- x: 440,
- y: 160
- }, {
- id: 15,
- x: 80,
- y: 280
- }, {
- id: 16,
- x: 200,
- y: 280
- }, {
- id: 17,
- x: 200,
- y: 160
- }, {
- id: 18,
- x: 80,
- y: 160
- }, {
- id: 19,
- x: 320,
- y: 160
- }],
- links: [{
- p1: 4,
- p2: 1,
- arrow: !0
- }, {
- p1: 6,
- p2: 7,
- arrow: !0
- }, {
- p1: 17,
- p2: 19,
- arrow: !0
- }, {
- p1: 4,
- p2: 8
- }, {
- p1: 5,
- p2: 2
- }, {
- p1: 14,
- p2: 10
- }, {
- p1: 15,
- p2: 17
- }, {
- p1: 7,
- p2: 2
- }, {
- p1: 12,
- p2: 7
- }, {
- p1: 14,
- p2: 12
- }, {
- p1: 6,
- p2: 1
- }, {
- p1: 11,
- p2: 6
- }, {
- p1: 19,
- p2: 11
- }, {
- p1: 9,
- p2: 4
- }, {
- p1: 16,
- p2: 9
- }, {
- p1: 17,
- p2: 16
- }, {
- p1: 7,
- p2: 5
- }, {
- p1: 9,
- p2: 6
- }, {
- p1: 8,
- p2: 9
- }, {
- p1: 12,
- p2: 10
- }, {
- p1: 11,
- p2: 12
- }, {
- p1: 16,
- p2: 11
- }, {
- p1: 15,
- p2: 16
- }, {
- p1: 15,
- p2: 18
- }, {
- p1: 8,
- p2: 15
- }, {
- p1: 3,
- p2: 8
- }, {
- p1: 4,
- p2: 3
- }, {
- p1: 2,
- p2: 1
- }, {
- p1: 0,
- p2: 2
- }, {
- p1: 5,
- p2: 0
- }, {
- p1: 10,
- p2: 5
- }, {
- p1: 13,
- p2: 10
- }, {
- p1: 14,
- p2: 13
- }, {
- p1: 19,
- p2: 14
- }, {
- p1: 18,
- p2: 17
- }],
- decor: {
- name: "pic32",
- x: 407,
- y: 532
- }
- })
- },
- addLevel: function(a) {
- var b = this.levels.length,
- c = new App.Level(b, a);
- this.levels.push(c)
- },
- getLevelTime: function() {
- return Math.round(game.time.elapsedSince(this.levelStartTime) - data.pauseTime)
- },
- getTotalTime: function() {
- for (var a = 0, b = 0; b < this.levels.length; b++) {
- var c = this.levels[b];
- c.isCompleted && (a += c.bestTime)
- }
- return a
- }
- }), App.Dialog = Class.extend({
- init: function(a, b, c) {
- this.game = a;
- var d = 0,
- e = 0,
- f = !1,
- g = !0;
- if (c && (void 0 != c.x && (d = c.x), void 0 != c.y && (e = c.y), 1 == c.blockBack && (f = !0), 0 == c.doTween && (g = !1)), this.holder = new Phaser.Group(this.game, this.game.world), f && (this.block = new Phaser.Sprite(this.game, 0, 0, "blackBack"), this.block.inputEnabled = !0, this.holder.add(this.block)), this.boxHolder = new Phaser.Group(this.game, this.holder), this.boxHolder.x = d, this.boxHolder.y = e, this.box = new Phaser.Sprite(this.game, 0, 0, b), this.boxHolder.add(this.box), g) {
- var h = this.boxHolder.y;
- this.boxHolder.y = Config.HEIGHT, this.game.add.tween(this.boxHolder).to({
- y: h
- }, 1e3, Phaser.Easing.Back.Out, !0), f && (this.block.alpha = 0, this.game.add.tween(this.block).to({
- alpha: 1
- }, 500, Phaser.Easing.Linear.None, !0))
- }
- },
- destroy: function() {
- this.holder.destroy()
- }
- }), App.GameLogic = Class.extend({
- init: function(a, b, c, d, e, f) {
- this.game = a, this.parentGroup = b, this.dotsGroup = c, this.linksGroup = d, this.dots = e, this.staticLinks = f, this.drawLine = null, this.userLinks = [], this.game.input.onDown.add(this.touchDownHandler, this), this.game.input.onUp.add(this.touchUpHandler, this), sounds.startLevel(), this.game.world.setBounds(-Config.WIDTH, 0, 4 * Config.WIDTH, Config.HEIGHT), Config.USE_PARTICLES && (this.vfx = new App.VisualFX(this.game))
- },
- addStaticLink: function(a, b) {
- var c = this.getDotById(a),
- d = this.getDotById(b),
- e = new App.StaticLink(this.game, this.linksGroup, c, d);
- this.staticLinks.push(e)
- },
- removeStaticLink: function(a) {
- var b = this.staticLinks.indexOf(a);
- this.staticLinks.splice(b, 1), a.destroy()
- },
- getDotById: function(a) {
- for (var b = 0; b < this.dots.length; b++) {
- var c = this.dots[b];
- if (c.id === a) return c
- }
- return null
- },
- touchDownHandler: function(a) {
- if (!data.pausedByUser && this.touchInsideBounds(a.x, a.y))
- if (this.drawLine) this.drawLine.startFollow();
- else {
- var b = Math.round(a.x),
- c = Math.round(a.y),
- d = this.getTapDotUnderPoint(b, c);
- d && (this.partyDot(d), this.startDrawingLine(d))
- }
- },
- partyDot: function(a) {
- a.wobble(), sounds.playPiano(), Config.USE_PARTICLES && this.vfx.explodeStars(a.getX(), a.getY())
- },
- touchInsideBounds: function(a, b) {
- var c = Config.TOUCH_BOUNDS.x,
- d = Config.TOUCH_BOUNDS.y,
- e = Config.TOUCH_BOUNDS.width,
- f = Config.TOUCH_BOUNDS.height;
- return a >= c && c + e >= a && b >= d && d + f >= b ? !0 : !1
- },
- fitPointInBounds: function(a, b) {
- var c = Config.TOUCH_BOUNDS.x,
- d = Config.TOUCH_BOUNDS.y,
- e = Config.TOUCH_BOUNDS.width,
- f = Config.TOUCH_BOUNDS.height;
- return c > a ? a = c : a > c + e && (a = c + e), d > b ? b = d : b > d + f && (b = d + f), {
- x: a,
- y: b
- }
- },
- startDrawingLine: function(a) {
- this.drawLine = new App.DrawLine(this.game, a, this.parentGroup)
- },
- touchUpHandler: function() {
- this.drawLine && this.drawLine.stopFollow()
- },
- getTapDotUnderPoint: function(a, b) {
- for (var c = 40, d = void 0, e = 0; e < this.dots.length; e++) {
- var f = this.dots[e],
- g = a - f.getX(),
- h = b - f.getY(),
- i = Math.sqrt(g * g + h * h);
- c >= i && (c = i, d = f)
- }
- return d
- },
- getNearestDotUnderPoint: function(a, b) {
- for (var c = 30, d = void 0, e = 0; e < this.dots.length; e++) {
- var f = this.dots[e];
- if (f != this.drawLine.dot) {
- var g = a - f.getX(),
- h = b - f.getY(),
- i = Math.sqrt(g * g + h * h);
- c >= i && (c = i, d = f)
- }
- }
- return d
- },
- getStaticLinkByDots: function(a, b) {
- for (var c = 0; c < this.staticLinks.length; c++) {
- var d = this.staticLinks[c];
- if (d.a1 === a && d.a2 === b || d.a1 === b && d.a2 === a) return d
- }
- return null
- },
- update: function() {
- if (this.drawLine && (this.drawLine.update(), this.drawLine.isFollowing())) {
- var a = this.game.input.activePointer.worldX,
- b = this.game.input.activePointer.worldY,
- c = this.getNearestDotUnderPoint(a, b);
- if (c) {
- var d = this.getStaticLinkByDots(this.drawLine.dot, c);
- if (d)
- if (d.isArrow)
- if (this.drawLine.dot === d.a1) this.connectTwoDots(c, d);
- else {
- var e = this.fitPointInBounds(a, b);
- this.drawLine.setEndPos(e.x, e.y)
- } else this.connectTwoDots(c, d);
- else {
- var e = this.fitPointInBounds(a, b);
- this.drawLine.setEndPos(e.x, e.y)
- }
- } else {
- var e = this.fitPointInBounds(a, b);
- this.drawLine.setEndPos(e.x, e.y)
- }
- }
- },
- connectTwoDots: function(a, b) {
- var c = new App.UserLink(this.game, this.linksGroup, this.drawLine.dot, a, b.isArrow);
- this.userLinks.push(c), this.partyDot(a), this.drawLine.destroy(), this.drawLine = null, this.removeStaticLink(b), 0 == this.staticLinks.length ? this.playerSolvedLevel() : this.startDrawingLine(a)
- },
- playerSolvedLevel: function() {
- sounds.play("sndLevelComplete"), this.game.input.onDown.remove(this.touchDownHandler, this), this.game.input.onUp.add(this.touchUpHandler, this), cmd.levelComplete()
- },
- undo: function() {
- if (this.userLinks.length > 0) {
- var a = this.userLinks.pop();
- this.addStaticLink(a.a1.id, a.a2.id), this.drawLine.destroy(), this.startDrawingLine(a.a1), this.drawLine.stopFollow(), a.destroy()
- } else this.drawLine && (this.drawLine.destroy(), this.drawLine = null)
- }
- }), App.Level = Class.extend({
- init: function(a, b) {
- this.id = a, this.data = b, this.reset()
- },
- reset: function() {
- this.isCompleted = !1, this.isOpen = !1
- },
- complete: function() {
- this.isCompleted = !0
- },
- getTitle: function() {
- return this.data.name
- }
- });
- var game, cmd, data, cookies, fader, stateSlider, parser, sounds, util;
- App.Parser = Class.extend({
- init: function() {},
- generateLevel: function(a, b, c) {
- this.game = a, this.parentGroup = b, this.game.add.sprite(0, 0, "background", 0, b), this.paper = new App.Paper(this.game, this.parentGroup);
- var d = c.id + 1,
- e = this.game.add.bitmapText(0, 0, "eras", d.toString(), 50, this.parentGroup);
- e.x = Config.WIDTH / 2 - .5 * e.textWidth, e.y = Config.HEIGHT - 50, this.linksGroup = new Phaser.Group(this.game, this.parentGroup), this.dotsGroup = new Phaser.Group(this.game, this.parentGroup), this.parseLevelData(c.data);
- var f = {
- dotsGroup: this.dotsGroup,
- linksGroup: this.linksGroup,
- dots: this.dots,
- staticLinks: this.staticLinks
- };
- return this.decorObj && this.paper.addDecor(this.decorObj.name, this.decorObj.x, this.decorObj.y), f
- },
- parseLevelData: function(a) {
- this.dots = [], this.staticLinks = [];
- var b, c = a.items,
- d = a.links,
- e = a.decor,
- f = 6,
- g = 1;
- if (c)
- for (b = 0; b < c.length; b++) {
- var h = c[b],
- i = h.id,
- j = c[b].x,
- k = c[b].y,
- l = "dotBase" + g;
- this.addDot(i, j, k, l), g++, g > f && (g = 1)
- }
- if (d)
- for (b = 0; b < d.length; b++) this.addStaticLink(d[b].p1, d[b].p2, d[b].arrow);
- if (this.decorObj = null, e) {
- var m = e.name,
- n = e.x,
- o = e.y;
- this.decorObj = {
- name: m,
- x: n,
- y: o
- }
- }
- },
- addDot: function(a, b, c, d) {
- var e = new App.Dot(this.game, this.dotsGroup, a, b, c, d);
- this.dots.push(e)
- },
- addStaticLink: function(a, b, c) {
- var d = this.getDotById(a),
- e = this.getDotById(b),
- f = new App.StaticLink(this.game, this.linksGroup, d, e, c);
- this.staticLinks.push(f)
- },
- getDotById: function(a) {
- for (var b = 0; b < this.dots.length; b++) {
- var c = this.dots[b];
- if (c.id === a) return c
- }
- return null
- }
- }), App.Sounds = Class.extend({
- init: function() {
- this.musicChannel = void 0
- },
- startMusic: function() {
- Config.SOUNDS_ENABLED && (game.device.desktop ? (this.musicChannel = game.add.audio("music", 1, !0), this.musicChannel.play()) : game.device.webAudio && (this.musicChannel = game.add.audio("music", 1, !0), this.musicChannel.play()))
- },
- stopMusic: function() {
- this.musicChannel && this.musicChannel.pause()
- },
- play: function(a, b) {
- var c = 1;
- void 0 != b && (c = b), Config.SOUNDS_ENABLED && (game.device.desktop ? game.sound.play(a, c) : game.device.webAudio && game.sound.play(a, c))
- },
- startLevel: function() {
- this.pianoMin = 0, this.pianoMax = 23, this.pianoIndex = 2 + Math.floor(8 * Math.random()), this.pianoIncrement = 1
- },
- playPiano: function() {
- Config.SOUNDS_ENABLED && (game.device.desktop ? data.sndPiano.play("note" + this.pianoIndex) : game.device.webAudio && data.sndPiano.play("note" + this.pianoIndex)), this.pianoIndex += this.pianoIncrement, this.pianoIndex == this.pianoMin - 1 ? (this.pianoIndex = this.pianoIndex + 1, this.pianoIncrement = 1) : this.pianoIndex == this.pianoMax + 1 && (this.pianoIndex = this.pianoMax - 1, this.pianoIncrement = -1)
- }
- }), App.Util = Class.extend({
- init: function() {},
- pulse: function(a, b) {
- void 0 == b && (b = 1.2), game.add.tween(a.scale).to({
- x: b,
- y: b
- }, 1e3, Phaser.Easing.Sinusoidal.InOut).to({
- x: 1,
- y: 1
- }, 1e3, Phaser.Easing.Sinusoidal.InOut).loop().start()
- },
- wobble: function(a, b) {
- void 0 == b && (b = 1);
- for (var c = game.add.tween(a.scale), d = 0; b > d; d++) {
- var c = c.to({
- x: 1.2,
- y: .8
- }, 100, Phaser.Easing.Sinusoidal.InOut);
- c.to({
- x: 1,
- y: 1
- }, 100, Phaser.Easing.Sinusoidal.InOut)
- }
- c.start()
- },
- formatTime: function(a) {
- var b = Math.floor(a / 1e3),
- c = Math.floor(b / 3600),
- d = Math.floor((b - 3600 * c) / 60),
- e = b - 3600 * c - 60 * d;
- return 10 > c && (c = "0" + c), 10 > d && (d = "0" + d), 10 > e && (e = "0" + e), d + ":" + e
- },
- randomizeArray: function(a) {
- for (var b = [], c = a.length; c--;) {
- var d = Math.floor(Math.random() * a.length),
- e = a.splice(d, 1)[0];
- b.unshift(e)
- }
- return b
- }
- }), App.BitmapLine = Class.extend({
- init: function(a, b, c, d, e) {
- this.game = a, this.group = b, this.bitmapAsset = c, this.startX = d, this.startY = e, this.bmdGroup = new Phaser.Group(this.game, this.group), this.bmdGroup.x = this.startX, this.bmdGroup.y = this.startY
- },
- createDynamicBitmap: function() {
- this.bmdWidth = 800, this.bmdHeight = 18, this.bmd = this.game.add.bitmapData(this.bmdWidth, this.bmdHeight), this.game.add.sprite(0, -this.bmdHeight / 2, this.bmd, 0, this.bmdGroup)
- },
- createStaticBitmap: function(a, b) {
- var c = a - this.startX,
- d = b - this.startY,
- e = Math.round(Math.sqrt(c * c + d * d)),
- f = Math.atan2(d, c);
- this.bmdWidth = e, this.bmdHeight = 18, this.bmd = this.game.add.bitmapData(this.bmdWidth, this.bmdHeight), this.game.add.sprite(0, -this.bmdHeight / 2, this.bmd, 0, this.bmdGroup), this.bmdGroup.rotation = f, this.render(a, b)
- },
- render: function(a, b) {
- var c = a - this.startX,
- d = b - this.startY,
- e = Math.round(Math.sqrt(c * c + d * d));
- if (e > 2) {
- var f = Math.atan2(d, c);
- this.bmdGroup.rotation = f, this.bmd.clear();
- var g = new Phaser.Rectangle(0, 0, e, this.bmdHeight);
- this.bmd.copyPixels(this.bitmapAsset, g, 0, 0)
- }
- }
- }), App.CreditsView = App.Dialog.extend({
- init: function(a) {
- this._super(a, "creditsBox", {
- x: 147,
- y: 200,
- blockBack: !0
- }), this.closeBt = new App.MyButton(this.game, "closeButton", this.closeClick, this, {
- x: 335,
- y: 25,
- center: !0,
- parentGroup: this.boxHolder
- });
- var b = data.texts[data.lang].credits,
- c = a.add.text(173, 70, b, {
- font: "50px Fredericka the Great",
- fill: "#373572",
- align: "center"
- }, this.boxHolder);
- c.anchor.set(.5, .5), this.logoBt = new App.MyButton(this.game, "postepennoLogo", this.logoClick, this, {
- x: 13,
- y: 160,
- parentGroup: this.boxHolder
- });
- var d = data.texts[data.lang].credits_code;
- this.gameByTxt = new Phaser.Text(this.game, 125, 156, d, {
- font: "bold 18px Arial"
- }), this.boxHolder.add(this.gameByTxt);
- var e = data.texts[data.lang].credits_art;
- this.artTxt = new Phaser.Text(this.game, 125, 200, e, {
- font: "bold 18px Arial"
- }), this.boxHolder.add(this.artTxt)
- },
- closeClick: function() {
- this.destroy()
- },
- logoClick: function() {
- Play68.goHome();
- }
- }), App.DeleteProgressView = App.Dialog.extend({
- init: function() {
- this._super(game, "clearProgressBox", {
- x: 147,
- y: 200,
- blockBack: !0
- });
- var a = data.texts[data.lang].clear_progress,
- b = game.add.text(173, 70, a, {
- font: "50px Fredericka the Great",
- fill: "#373572",
- align: "center"
- }, this.boxHolder);
- b.anchor.set(.5, .5), this.yesBt = new App.MyButton(this.game, "yesButton", this.yesClick, this, {
- x: 85,
- y: 245,
- center: !0,
- parentGroup: this.boxHolder
- }), this.noBt = new App.MyButton(this.game, "noButton", this.noClick, this, {
- x: 270,
- y: 245,
- center: !0,
- parentGroup: this.boxHolder
- })
- },
- yesClick: function() {
- cookies.clear(), this.destroy()
- },
- noClick: function() {
- this.destroy()
- }
- }), App.Dot = Class.extend({
- init: function(a, b, c, d, e, f) {
- this.game = a, this.id = c, this.baseAssetName = f, this.group = new Phaser.Group(this.game, b), this.group.x = d, this.group.y = e, this.lastSprite = void 0, this.setState(App.Dot.BASE)
- },
- getX: function() {
- return this.group.x
- },
- getY: function() {
- return this.group.y
- },
- setState: function(a) {
- this.state = a, this.sprite && this.sprite.destroy(), this.setSprite(this.baseAssetName)
- },
- setSprite: function(a) {
- this.sprite = data.addAtlasSprite(a, {
- parent: this.group
- }), this.sprite.pivot.x = .5 * this.sprite.width, this.sprite.pivot.y = .5 * this.sprite.height, this.group.addAt(this.sprite, 0)
- },
- setLast: function(a) {
- 1 == a ? (this.lastSprite = new Phaser.Sprite(this.game, 0, 0, "dotLast"), this.lastSprite.anchor.set(.5, .5), this.group.add(this.lastSprite)) : 0 == a && this.lastSprite.destroy()
- },
- wobble: function() {
- util.wobble(this.group, 2)
- }
- }), App.Dot.BASE = "AnchorBase", App.Dot.ACTIVE = "AnchorActive", App.Dot.VISITED = "AnchorVisited", App.DrawLine = Class.extend({
- init: function(a, b, c) {
- this.game = a, this.followPointer = !1, this.dot = b, this.ex = this.dot.getX(), this.ey = this.dot.getY(), this.group = new Phaser.Group(this.game, c), Config.BITMAP_LINES ? (this.view = new App.BitmapLine(this.game, this.group, "drawLine", this.ex, this.ey), this.view.createDynamicBitmap()) : this.view = new App.GraphicLine(this.game, this.group, "0xFF0000", this.ex, this.ey), this.endSprite = data.addAtlasSprite("drawLineEnd", {
- parent: this.group
- }), this.endSprite.anchor.set(.5, .5), this.render(), this.startFollow()
- },
- setEndPos: function(a, b) {
- this.ex = a, this.ey = b, this.render()
- },
- render: function() {
- this.view.render(this.ex, this.ey), this.endSprite.x = this.ex, this.endSprite.y = this.ey
- },
- update: function() {
- this.endSprite.rotation += .1
- },
- startFollow: function() {
- this.followPointer = !0
- },
- stopFollow: function() {
- this.followPointer = !1
- },
- isFollowing: function() {
- return this.followPointer
- },
- destroy: function() {
- this.group.destroy()
- }
- }), App.FPS = Class.extend({
- init: function(a, b) {
- this.game = a, this.parentGroup = b, this.game.time.advancedTiming = !0, this.fpsTxt = new Phaser.Text(this.game, 0, 0, "FPS: XXX", {
- font: "bold 20px Arial",
- fill: "#FF0000"
- }), this.parentGroup.add(this.fpsTxt), this.update(), this.game.time.events.loop(Phaser.Timer.SECOND, this.update, this)
- },
- update: function() {
- this.fpsTxt.setText("FPS: " + this.game.time.fps)
- }
- }), App.Fader = Class.extend({
- init: function(a) {
- this.game = a
- },
- fade: function(a, b) {
- this.callback = a, this.scope = b, this.pic = game.add.sprite(0, 0, "fader"), this.pic.alpha = 0, this.pic.inputEnabled = !0;
- var c = game.add.tween(this.pic).to({
- alpha: .8
- }, 300, Phaser.Easing.Linear.None, !0);
- c.onComplete.addOnce(this.fadeInComplete, this)
- },
- fadeInComplete: function() {
- App.Fader.SHOULD_FADE_OUT = !0, this.callback.call(this.scope)
- },
- fadeOut: function() {
- App.Fader.SHOULD_FADE_OUT = !1, this.pic = game.add.sprite(0, 0, "fader"), this.pic.inputEnabled = !0;
- var a = game.add.tween(this.pic).to({
- alpha: 0
- }, 300, Phaser.Easing.Linear.None, !0);
- a.onComplete.addOnce(this.fadeOutComplete, this)
- },
- fadeOutComplete: function() {
- this.pic.destroy()
- }
- }), App.Fader.SHOULD_FADE_OUT = !1, App.GraphicLine = Class.extend({
- init: function(a, b, c, d, e) {
- this.game = a, this.group = b, this.color = c, this.startX = d, this.startY = e, this.g = new Phaser.Graphics(this.game, 0, 0), this.group.add(this.g)
- },
- render: function(a, b) {
- this.g.clear(), this.g.lineStyle(5, this.color), this.g.moveTo(this.startX, this.startY), this.g.lineTo(a, b)
- }
- }), App.LevelItem = Class.extend({
- init: function(a, b, c, d, e) {
- if (this.game = a, this.level = c, this.parentGroup = b, this.group = new Phaser.Group(this.game, this.parentGroup), this.group.x = d, this.group.y = e, c.isOpen) {
- var f, g = 0;
- c.isCompleted ? (f = "levelItemCompleteBack", g = 3757085) : (f = "levelItemBack", g = 16777215), this.bt = new App.MyButton(this.game, f, this.click, this, {
- center: !0,
- parentGroup: this.group
- });
- var h = this.game.add.bitmapText(0, 0, "eras", (this.level.id + 1).toString(), 50, this.group);
- h.x = .5 * -h.textWidth - 6, h.y = .3 * -h.textHeight - 6, h.tint = g
- } else {
- var i = data.addAtlasSprite("levelItemLockedBack", {
- x: 0,
- y: 0,
- parent: this.group
- });
- i.anchor.set(.5, .5)
- }
- },
- click: function() {
- util.wobble(this.group), fader.fade(this.go, this)
- },
- go: function() {
- cmd.levelStart(this.level.id)
- }
- }), App.LevelsGroup = Class.extend({
- init: function(a, b, c) {
- this.game = a, this.id = b, this.parentGroup = c, this.group = new Phaser.Group(this.game, this.parentGroup), this.group.y = this.id * Config.HEIGHT;
- var d = 106,
- e = 106;
- this.rows = 4, this.cols = 4, this.boundsRect = {
- x: 70,
- y: 120,
- width: 500,
- height: 460
- };
- for (var f = this.rows * this.cols, g = (this.boundsRect.width - d) / (this.cols - 1), h = (this.boundsRect.height - e) / (this.rows - 1), i = this.id * f, j = (this.id + 1) * f, k = 0, l = i; j > l; l++) {
- var m = data.levels[l];
- if (m) {
- var n = this.boundsRect.x + d / 2 + k % this.cols * g,
- o = this.boundsRect.y + e / 2 + Math.floor(k / this.cols) * h;
- new App.LevelItem(this.game, this.group, m, n, o)
- }
- k++
- }
- },
- drawBounds: function() {
- this.g = game.add.graphics(0, 0, this.group), this.g.clear(), this.g.lineStyle(5, this.color), this.g.drawRect(this.boundsRect.x, this.boundsRect.y, this.boundsRect.width, this.boundsRect.height)
- }
- }), App.MyButton = Class.extend({
- init: function(a, b, c, d, e) {
- this.game = a;
- var f = 0,
- g = 0;
- this.callback = c, this.callbackContext = d;
- var h = !1,
- i = a.world,
- j = !0;
- if (this.wobble = !1, e && (void 0 != e.x && (f = e.x), void 0 != e.y && (g = e.y), 1 == e.center && (h = !0), void 0 != e.parentGroup && (i = e.parentGroup), e.atlas === !1 && (j = !1), 1 == e.wobble && (this.wobble = !0)), j) {
- var k = data.getAtlasKey(b);
- this.bt = a.add.button(f, g, data.atlasName, this.clickHandler, this, k, k, k, k, i)
- } else this.bt = a.add.button(f, g, b, this.clickHandler, this, null, null, null, null, i);
- this.bt.input.useHandCursor = !0, h && this.bt.anchor.set(.5, .5)
- },
- clickHandler: function() {
- sounds.play("sndClick"), this.wobble && util.wobble(this.bt), this.callback.call(this.callbackContext)
- },
- scaleHide: function() {
- this.game.add.tween(this.bt.scale).to({
- x: 0,
- y: 0
- }, 200, Phaser.Easing.Linear.None, !0)
- },
- scaleShow: function() {
- this.game.add.tween(this.bt.scale).to({
- x: 1,
- y: 1
- }, 200, Phaser.Easing.Linear.None, !0)
- },
- hide: function() {
- this.bt.scale.x = this.bt.scale.y = 0
- },
- show: function() {
- this.bt.scale.x = this.bt.scale.y = 1
- },
- disableClick: function() {
- this.bt.inputEnabled = !1
- },
- enableClick: function() {
- this.bt.inputEnabled = !0
- }
- }), App.Paper = Class.extend({
- init: function(a, b) {
- this.game = a, this.parentGroup = b
- },
- addDecor: function(a, b, c) {
- data.addAtlasSprite(a, {
- x: b,
- y: c,
- parent: this.parentGroup
- })
- }
- }), App.PauseView = App.Dialog.extend({
- init: function(a) {
- this.parentState = a, this._super(game, "pauseBox", {
- x: 147,
- y: 200,
- blockBack: !0
- });
- var b = data.texts[data.lang].pause,
- c = game.add.text(173, 70, b, {
- font: "50px Fredericka the Great",
- fill: "#373572",
- align: "center"
- }, this.boxHolder);
- c.anchor.set(.5, .5), this.exitBt = new App.MyButton(this.game, "levelsButton", this.exitClick, this, {
- x: 96,
- y: 212,
- center: !0,
- parentGroup: this.boxHolder,
- wobble: !0
- }), this.nextBt = new App.MyButton(this.game, "nextButton", this.resumeClick, this, {
- x: 252,
- y: 210,
- center: !0,
- parentGroup: this.boxHolder
- }), this.startTime = game.time.now, data.pausedByUser = !0
- },
- exitClick: function() {
- data.pausedByUser = !1, fader.fade(this.gotoMenu, this)
- },
- gotoMenu: function() {
- game.state.start("LevelSelect")
- },
- resumeClick: function() {
- data.pausedByUser = !1, data.pauseTime += Math.round(game.time.now - this.startTime), this.parentState.resumeGame(), this.destroy()
- }
- }), App.SoundIcon = Class.extend({
- init: function(a, b) {
- var c = 0,
- d = 0,
- e = 1,
- f = a.world;
- void 0 != b && (void 0 != b.x && (c = b.x), void 0 != b.y && (d = b.y), void 0 != b.scale && (e = b.scale), void 0 != b.parentGroup && (f = b.parentGroup)), this.group = a.add.group(f), this.group.x = c, this.group.y = d, this.group.scale.x = this.group.scale.y = e, this.btOn = new App.MyButton(a, "soundIconOn", this.sndClick, this, {
- center: !0,
- parentGroup: this.group
- }), this.btOff = new App.MyButton(a, "soundIconOff", this.sndClick, this, {
- center: !0,
- parentGroup: this.group
- }), this.updateIcon(), a.device.desktop || a.device.webAudio || this.hide()
- },
- updateIcon: function() {
- Config.SOUNDS_ENABLED ? (this.btOn.show(), this.btOff.hide()) : (this.btOn.hide(), this.btOff.show())
- },
- hide: function() {
- this.group.visible = !1
- },
- sndClick: function() {
- Config.SOUNDS_ENABLED = !Config.SOUNDS_ENABLED, Config.SOUNDS_ENABLED ? sounds.startMusic() : sounds.stopMusic(), cookies.saveSound(), this.updateIcon(), util.wobble(this.group)
- },
- disableClick: function() {
- this.btOn.disableClick(), this.btOff.disableClick()
- }
- }), App.StateSlider = Class.extend({
- init: function() {
- this.transitionTime = 1500, this.easingIn = Phaser.Easing.Cubic.In, this.easingOut = Phaser.Easing.Cubic.Out
- },
- levelComplete: function() {
- var a = data.curLevel.id,
- b = data.levels[a + 1];
- b ? this.slideToNextLevel(b) : cmd.gameComplete()
- },
- slideToNextLevel: function(a) {
- var b = game.state.getCurrentState().getCoreGroup();
- this.transitionGroup = new Phaser.Group(game, b), this.transitionGroup.x = Config.WIDTH, parser.generateLevel(game, this.transitionGroup, a);
- var c = new Phaser.Tween(game.camera, game, game.tweens);
- c.to({
- x: Config.WIDTH
- }, this.transitionTime, Phaser.Easing.Cubic.InOut), c.onComplete.addOnce(this.levelSlideComplete, this), c.start()
- },
- levelSlideComplete: function() {
- var a = data.curLevel.id + 1;
- cmd.levelStart(a)
- }
- }), App.StaticLink = Class.extend({
- init: function(a, b, c, d, e) {
- this.game = a, this.a1 = c, this.a2 = d, this.isArrow = e, this.group = new Phaser.Group(this.game, b);
- var f = this.a1.getX(),
- g = this.a1.getY(),
- h = this.a2.getX(),
- i = this.a2.getY();
- if (Config.BITMAP_LINES ? (this.view = new App.BitmapLine(this.game, this.group, "staticLink", f, g), this.view.createStaticBitmap(h, i)) : (this.view = new App.GraphicLine(this.game, this.group, "0x999999", f, g), this.view.render(h, i)), this.isArrow) {
- var j = h - f,
- k = i - g,
- l = Math.atan2(k, j),
- m = data.addAtlasSprite("arrow", {
- x: f + j / 2,
- y: g + k / 2,
- parent: this.group
- });
- m.anchor.set(.5, .5), m.rotation = l
- }
- },
- destroy: function() {
- this.group.destroy()
- }
- }), App.Tutorial = Class.extend({
- init: function(a) {
- this.game = a;
- var b = Config.WIDTH / 2;
- if (0 == data.curLevel.id) this.addText(data.texts[data.lang].tutorial1, {
- x: b,
- y: 130,
- delay: 500
- });
- else if (1 == data.curLevel.id) {
- var c = {
- font: "20px Arial",
- fill: "#000000",
- align: "center"
- };
- this.addText(data.texts[data.lang].tutorial2a, {
- x: 450,
- y: 100,
- delay: 1e3,
- style: c
- }), this.addText(data.texts[data.lang].tutorial2b, {
- x: 570,
- y: 100,
- delay: 2e3,
- style: c
- })
- } else 16 == data.curLevel.id && this.addText(data.texts[data.lang].tutorial3, {
- x: b,
- y: 150,
- delay: 500
- })
- },
- addSprite: function(a, b, c) {
- var d = data.addAtlasSprite(a, {
- x: b,
- y: c - 10
- });
- d.alpha = 0, game.add.tween(d).to({
- alpha: 1,
- y: c
- }, 1e3, Phaser.Easing.Quadratic.Out, !0)
- },
- addText: function(a, b) {
- var c = 0,
- d = 0,
- e = 500,
- f = {
- font: "34px Arial",
- fill: "#000000"
- };
- b && (void 0 != b.x && (c = b.x), void 0 != b.y && (d = b.y), void 0 != b.delay && (e = b.delay), void 0 != b.style && (f = b.style));
- var g = this.game.add.text(c, d, a, f);
- g.align = "center", g.anchor.set(.5, 0), g.alpha = 0, g.y -= 10, this.game.add.tween(g).delay(e).to({
- alpha: 1,
- y: d
- }, 1e3, Phaser.Easing.Quadratic.Out, !0)
- }
- }), App.UserLink = Class.extend({
- init: function(a, b, c, d, e) {
- this.game = a, this.a1 = c, this.a2 = d, this.isArrow = e, this.group = new Phaser.Group(this.game, b);
- var f = this.a1.getX(),
- g = this.a1.getY(),
- h = this.a2.getX(),
- i = this.a2.getY();
- if (Config.BITMAP_LINES ? (this.view = new App.BitmapLine(this.game, this.group, "userLink", this.a1.getX(), this.a1.getY()), this.view.createStaticBitmap(d.getX(), d.getY())) : (this.view = new App.GraphicLine(this.game, this.group, "0x000000", this.a1.getX(), this.a1.getY()), this.view.render(this.a2.getX(), this.a2.getY())), this.isArrow) {
- var j = h - f,
- k = i - g,
- l = Math.atan2(k, j),
- m = data.addAtlasSprite("arrow", {
- x: f + j / 2,
- y: g + k / 2,
- parent: this.group
- });
- m.anchor.set(.5, .5), m.rotation = l
- }
- },
- destroy: function() {
- this.group.destroy()
- }
- }), App.VisualFX = Class.extend({
- init: function(a) {
- this.game = a, this.emitter = this.game.add.emitter(0, 0, 100);
- for (var b = [], c = 1; 4 >= c; c++) b.push("pics/starParticle" + c + "_0000");
- this.emitter.makeParticles("pics", b), this.emitter.gravity = 0, this.emitter.setAlpha(1, 0, 4e3), this.emitter.setScale(.3, 1.5, .3, 1.5, 2e3), this.emitter.forEach(this.tune, this, !1)
- },
- tune: function(a) {
- a.anchor.set(0, 0), a.pivot.x = .5 * a.width, a.pivot.y = .5 * a.height
- },
- explodeStars: function(a, b) {
- this.emitter.x = a, this.emitter.y = b, this.emitter.start(!0, 2e3, null, 5)
- }
- }), App.BootState = function() {}, App.BootState.prototype = {
- preload: function() {
- this.load.image("preloadBar", "assets/images/preloadBar.png"), this.load.image("preloadBarHolder", "assets/images/preloadBarHolder.png"), this.load.image("background", "assets/images/background.jpg"), game.stage.backgroundColor = "#EBE7DA"
- },
- create: function() {
- this.game.input.maxPointers = 1, this.game.scale.scaleMode = Phaser.ScaleManager.SHOW_ALL, this.game.scale.pageAlignHorizontally = !0, this.game.scale.pageAlignVertically = !0, this.game.scale.enterPortrait.add(this.rescale, this), this.game.scale.enterLandscape.add(this.rescale, this), this.game.scale.setScreenSize(!0), SG_Hooks.setOrientationHandler(this.rescale), SG_Hooks.setResizeHandler(this.rescale), Config.TRANSPARENT && (this.game.world.alpha = .5), this.game.device.android && !this.game.device.chrome && (Config.BITMAP_LINES = !1, Config.USE_PARTICLES = !1), this.game.state.start("Preloader")
- },
- rescale: function() {
- var a = this.game;
- setTimeout(function() {
- a.scale.refresh()
- }, 500)
- }
- }, App.GameCompleteState = function() {}, App.GameCompleteState.prototype = {
- create: function() {
- this.add.sprite(0, 0, "gameCompleteBack.jpg"), this.backBt = new App.MyButton(this.game, "homeButton", this.backClick, this, {
- x: 116,
- y: 640,
- center: !0,
- wobble: !0
- }), this.tweenAlphaButton(this.backBt.bt, 2e3), App.Fader.SHOULD_FADE_OUT && fader.fadeOut()
- },
- tweenAlphaButton: function(a, b) {
- a.alpha = 0, this.add.tween(a).to({
- alpha: 1
- }, 500, Phaser.Easing.Linear.None, !0, b)
- },
- backClick: function() {
- fader.fade(this.gotoMenu, this)
- },
- gotoMenu: function() {
- game.state.start("MainMenu")
- }
- }, App.GameplayState = function() {}, App.GameplayState.prototype = {
- create: function() {
- this.coreGroup = new Phaser.Group(this.game, this.game.world);
- var a = parser.generateLevel(this.game, this.coreGroup, data.curLevel);
- this.logic = new App.GameLogic(this.game, this.coreGroup, a.dotsGroup, a.linksGroup, a.dots, a.staticLinks), this.uiGroup = new Phaser.Group(this.game, this.game.world), this.uiGroup.fixedToCamera = !0, this.restartBt = new App.MyButton(this.game, "restartButton", this.restartClick, this, {
- x: 454,
- y: 52,
- center: !0,
- parentGroup: this.uiGroup
- }), this.pauseBt = new App.MyButton(this.game, "pauseButton", this.pauseClick, this, {
- x: 79,
- y: 53,
- center: !0,
- parentGroup: this.uiGroup,
- wobble: !0
- }), this.undoBt = new App.MyButton(this.game, "undoButton", this.undoClick, this, {
- x: 572,
- y: 52,
- center: !0,
- parentGroup: this.uiGroup,
- wobble: !0
- }), this.soundIcon = new App.SoundIcon(this.game, {
- x: 197,
- y: 56,
- parentGroup: this.uiGroup
- }), Config.ENABLE_CHEAT && (this.cheatBt = new App.MyButton(this.game, "cheatButton", this.cheatClick, this, {
- x: 320,
- y: 56,
- center: !0,
- parentGroup: this.uiGroup
- })), Config.SHOW_FPS && (this.fps = new App.FPS(this.game, this.uiGroup)), this.game.onPause.add(this.globalPauseOn, this), this.game.onResume.add(this.globalPauseOff, this), this.tutorial = new App.Tutorial(this.game), App.Fader.SHOULD_FADE_OUT && fader.fadeOut()
- },
- cheatClick: function() {
- cmd.levelComplete()
- },
- undoClick: function() {
- this.logic.undo()
- },
- globalPauseOn: function() {
- this.globalPauseStart = game.time.now
- },
- globalPauseOff: function() {
- data.pausedByUser || (data.pauseTime += Math.round(game.time.now - this.globalPauseStart))
- },
- addTimerEvent: function() {
- this.timerEvent = this.game.time.events.loop(Phaser.Timer.SECOND, this.updateUI, this)
- },
- removeTimerEvent: function() {
- this.game.time.events.remove(this.timerEvent)
- },
- updateUI: function() {
- this.timer.setTime(data.getLevelTime())
- },
- levelComplete: function() {
- this.disableButtons()
- },
- disableButtons: function() {
- this.undoBt.disableClick(), this.soundIcon.disableClick(), this.restartBt.disableClick(), this.pauseBt.disableClick()
- },
- getCoreGroup: function() {
- return this.coreGroup
- },
- update: function() {
- this.logic.update()
- },
- restartClick: function() {
- cmd.levelStart(data.curLevel.id, !1)
- },
- pauseClick: function() {
- this.removeTimerEvent(), this.pauseView = new App.PauseView(this)
- },
- resumeGame: function() {}
- }, App.LevelSelectState = function() {}, App.LevelSelectState.prototype = {
- create: function() {
- this.add.sprite(0, 0, "background"), this.itemsHolder = new Phaser.Group(this.game, this.game.world), this.groupsNum = 2;
- for (var a = 0; a < this.groupsNum; a++) {
- new App.LevelsGroup(this.game, a, this.itemsHolder)
- }
- var b = data.texts[data.lang].select_level,
- c = game.add.text(Config.WIDTH / 2, 70, b, {
- font: "50px Fredericka the Great",
- fill: "#373572"
- });
- c.anchor.set(.5, .5), this.homeBt = new App.MyButton(this.game, "homeButton", this.homeClick, this, {
- x: 113,
- y: 660,
- center: !0,
- wobble: !0
- }), this.scrollUp = new App.MyButton(this.game, "upButton", this.scrollUpClick, this, {
- x: 555,
- y: 650,
- center: !0
- }), this.scrollDown = new App.MyButton(this.game, "downButton", this.scrollDownClick, this, {
- x: 445,
- y: 650,
- center: !0
- }), this.itemsHolder.y = -Config.HEIGHT * App.LevelSelectState.CURRENT_GROUP_ID, 0 == App.LevelSelectState.CURRENT_GROUP_ID ? this.scrollUp.hide() : App.LevelSelectState.CURRENT_GROUP_ID == this.groupsNum - 1 && this.scrollDown.hide(), App.Fader.SHOULD_FADE_OUT && fader.fadeOut()
- },
- scrollUpClick: function() {
- 1 == App.LevelSelectState.CURRENT_GROUP_ID && this.scrollUp.scaleHide(), App.LevelSelectState.CURRENT_GROUP_ID == this.groupsNum - 1 && this.scrollDown.scaleShow(), App.LevelSelectState.CURRENT_GROUP_ID--, this.scrollUp.disableClick(), this.scrollDown.disableClick();
- var a = this.game.add.tween(this.itemsHolder);
- a.to({
- y: -Config.HEIGHT * App.LevelSelectState.CURRENT_GROUP_ID
- }, 500, Phaser.Easing.Quadratic.InOut, !0), a.onComplete.addOnce(this.scrollComplete, this)
- },
- scrollDownClick: function() {
- 0 == App.LevelSelectState.CURRENT_GROUP_ID && this.scrollUp.scaleShow(), App.LevelSelectState.CURRENT_GROUP_ID == this.groupsNum - 2 && this.scrollDown.scaleHide(), App.LevelSelectState.CURRENT_GROUP_ID++, this.scrollUp.disableClick(), this.scrollDown.disableClick();
- var a = this.game.add.tween(this.itemsHolder);
- a.to({
- y: -Config.HEIGHT * App.LevelSelectState.CURRENT_GROUP_ID
- }, 500, Phaser.Easing.Quadratic.InOut, !0), a.onComplete.addOnce(this.scrollComplete, this)
- },
- scrollComplete: function() {
- this.scrollUp.enableClick(), this.scrollDown.enableClick()
- },
- homeClick: function() {
- fader.fade(this.gotoMainMenu, this)
- },
- gotoMainMenu: function() {
- this.game.state.start("MainMenu")
- }
- }, App.LevelSelectState.CURRENT_GROUP_ID = 0, App.MainMenuState = function() {}, App.MainMenuState.prototype = {
- create: function() {
- this.add.sprite(0, 0, "background"), this.title = data.addAtlasSprite("gameTitle", {
- x: 250,
- y: 19
- }), this.playBt = new App.MyButton(this.game, "playButton2", this.playClick, this, {
- x: 490,
- y: 390,
- center: !0
- }), util.pulse(this.playBt.bt, 1.1), this.character = data.addAtlasSprite("menuCharacter", {
- x: 40,
- y: 30
- }), this.soundIcon = new App.SoundIcon(this.game, {
- x: 65,
- y: 660
- }), this.deleteProgressBt = new App.MyButton(this.game, "clearProgressButton", this.deleteProgressClick, this, {
- x: 554,
- y: 638,
- center: !0,
- wobble: !0
- }), this.creditsBt = new App.MyButton(this.game, "creditsButton", this.creditsClick, this, {
- x: 438,
- y: 638,
- center: !0,
- wobble: !0
- }), this.moreGames = new App.MyButton(this.game, "moreGamesButton", this.moreGamesClick, this, {
- x: 320,
- y: 638,
- center: !0,
- wobble: !0
- });
- var a = "v " + Config.VERSION;
- this.add.text(5, Config.HEIGHT - 15, a, {
- font: "12px Arial",
- fill: "#000000"
- }), Config.SHOW_FPS && (this.fps = new App.FPS(this.game, this.game.world)), Config.RELEASE || this.add.text(20, 30, "DEVELOPMENT VERSION", {
- font: "30px Arial",
- fill: "#FF0000"
- });
- var b = game.add.text(300, 250, "SELECT LEVEL", {
- font: "32px Fredericka the Great",
- fill: "#373572"
- });
- b.visible = !1, this.showWithTweens(), App.Fader.SHOULD_FADE_OUT && fader.fadeOut()
- },
- moreGamesClick: function() {
- //window.open("http://m.softgames.de", "_blank")
- // clickMore();
- Play68.goHome();
- },
- showWithTweens: function() {
- this.title.alpha = 0, this.add.tween(this.title).to({
- alpha: 1
- }, 800, Phaser.Easing.Linear.None, !0), this.character.alpha = 0, this.add.tween(this.character).to({
- alpha: 1
- }, 800, Phaser.Easing.Linear.None, !0, 500), this.tweenScaleButton(this.soundIcon.group, 1300), this.tweenScaleButton(this.moreGames.bt, 1500), this.tweenScaleButton(this.creditsBt.bt, 1700), this.tweenScaleButton(this.deleteProgressBt.bt, 1900), this.tweenAlphaButton(this.playBt.bt, 2100)
- },
- tweenScaleButton: function(a, b) {
- a.scale.x = a.scale.y = 0, this.add.tween(a.scale).to({
- x: 1,
- y: 1
- }, 500, Phaser.Easing.Back.Out, !0, b)
- },
- tweenAlphaButton: function(a, b) {
- a.alpha = 0, this.add.tween(a).to({
- alpha: 1
- }, 500, Phaser.Easing.Linear.None, !0, b)
- },
- playClick: function() {
- fader.fade(this.startGame, this)
- },
- startGame: function() {
- cmd.gameStart()
- },
- deleteProgressClick: function() {
- new App.DeleteProgressView(this.game)
- },
- creditsClick: function() {
- new App.CreditsView(this.game)
- }
- }, App.PreloaderState = function() {}, App.PreloaderState.prototype = {
- preload: function() {
- this.add.sprite(0, 0, "background");
- var a, b = ["fader", "blackBack", "creditsBox", "clearProgressBox", "staticLink", "userLink", "drawLine", "pauseBox", "gameCompleteBack.jpg"],
- c = ["sndClick", "sndLevelComplete", "sndPiano", "music"];
- for (a = 0; a < b.length; a++) {
- var d = -1 == b[a].indexOf(".jpg") ? b[a] + ".png" : b[a];
- this.load.image(b[a], "assets/images/" + d)
- }
- for (a = 0; a < c.length; a++) {
- var e = c[a] + ".mp3",
- f = c[a] + ".ogg";
- this.load.audio(c[a], ["assets/sounds/" + e, "assets/sounds/" + f])
- }
- this.load.atlasJSONHash("pics", "assets/images/pics.png", "assets/images/pics.json"), this.load.bitmapFont("eras", "assets/fonts/eras.png", "assets/fonts/eras.fnt"), this.load.text("textData", "release/TextData.json"), this.holder = this.game.add.group(), this.preloadBar = this.add.sprite(60, 269, "preloadBar", null, this.holder), this.add.sprite(60, 264, "preloadBarHolder", null, this.holder), this.progressTxt = this.game.add.text(Config.WIDTH / 2, 210, "0%", {
- font: "bold 50px Arial",
- fill: "#432291"
- }, this.holder), this.progressTxt.anchor.set(.5, 0), this.load.setPreloadSprite(this.preloadBar), this.load.onFileComplete.add(this.fileLoaded, this)
- },
- fileLoaded: function(a) {
- this.progressTxt.setText(a + "%")
- },
- create: function() {
- this.preloaderComplete()
- },
- preloaderComplete: function() {
- var a = SG.lang; //SG_Hooks.getLanguage(["en", "ru"]);
- fader = new App.Fader(this.game), cmd = new App.Commands, data = new App.Data(a), cookies = new App.Cookies, sounds = new App.Sounds, sounds.startMusic(), stateSlider = new App.StateSlider, parser = new App.Parser, util = new App.Util, this.game.state.start("MainMenu")
- }
- };
|