diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml new file mode 100644 index 0000000..4a2771a --- /dev/null +++ b/.gitea/workflows/deploy.yml @@ -0,0 +1,90 @@ +name: Deploy to Production + +on: + push: + branches: + - main + - master + +jobs: + deploy: + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v3 + + - name: Deploy to server + run: | + echo "🚀 Deploying to /var/www/html/games" + echo "📁 Current directory: $(pwd)" + echo "📁 GITHUB_WORKSPACE: $GITHUB_WORKSPACE" + + # Read game info from readme.md + if [ -f "$GITHUB_WORKSPACE/readme.md" ]; then + GAME_TITLE=$(sed -n '1p' "$GITHUB_WORKSPACE/readme.md") + GAME_DESC=$(sed -n '2p' "$GITHUB_WORKSPACE/readme.md") + GAME_TYPE=$(sed -n '3p' "$GITHUB_WORKSPACE/readme.md") + else + GAME_TITLE="Untitled Game" + GAME_DESC="No description" + GAME_TYPE="quiz" + fi + + # Create base directory + mkdir -p /var/www/html/games/ + + # Find and deploy all game folders (exclude source, .git, .gitea, etc.) + DEPLOYED_FOLDERS="" + DEPLOYED_URLS="" + for folder in $GITHUB_WORKSPACE/*/; do + folder_name=$(basename "$folder") + + # Skip excluded folders + if [[ "$folder_name" == "source" ]] || \ + [[ "$folder_name" == ".git" ]] || \ + [[ "$folder_name" == ".gitea" ]] || \ + [[ "$folder_name" == "node_modules" ]] || \ + [[ "$folder_name" == "logs" ]] || \ + [[ "$folder_name" == "uploads" ]]; then + echo "⏭️ Skipping: $folder_name" + continue + fi + + # Deploy the folder + echo "📦 Deploying: $folder_name" + rsync -av --delete "$folder" "/var/www/html/games/$folder_name/" + DEPLOYED_FOLDERS="$DEPLOYED_FOLDERS $folder_name" + GAME_URL="https://senaai.tech/games/$folder_name/" + DEPLOYED_URLS="$DEPLOYED_URLS\n 🔗 $GAME_URL" + + # Get thumbnail (first image found or default) + THUMBNAIL=$(find "$folder" -type f \( -name "*.png" -o -name "*.jpg" -o -name "*.jpeg" \) 2>/dev/null | head -n 1 || true) + if [ -z "$THUMBNAIL" ]; then + THUMBNAIL="https://senaai.tech/games/$folder_name/images/default.png" + else + THUMBNAIL="https://senaai.tech/games/$folder_name/$(basename "$THUMBNAIL")" + fi + + # Submit game info to API + echo "📤 Submitting game info to API..." + curl --location 'http://senaai.tech:10000/api/games/save-with-check' \ + --header 'Content-Type: application/x-www-form-urlencoded' \ + --data-urlencode "title=$GAME_TITLE" \ + --data-urlencode "description=$GAME_DESC" \ + --data-urlencode "url=$GAME_URL" \ + --data-urlencode "thumbnail=$THUMBNAIL" \ + --data-urlencode "type=$GAME_TYPE" || true + echo "" + done + + # Show deployment summary + echo "" + echo "==========================================" + echo "🎉 Deployment Completed Successfully!" + echo "==========================================" + echo "" + echo "📍 Deployed URLs:" + echo -e "$DEPLOYED_URLS" + echo "" + echo "==========================================" \ No newline at end of file diff --git a/G102-sequence/bg.mp4 b/G102-sequence/bg.mp4 deleted file mode 100644 index b08ed26..0000000 Binary files a/G102-sequence/bg.mp4 and /dev/null differ diff --git a/G102-sequence/data.js b/G102-sequence/data.js deleted file mode 100644 index 437f468..0000000 --- a/G102-sequence/data.js +++ /dev/null @@ -1 +0,0 @@ -{"project": [null,"Intro",[[0,true,false,false,false,false,false,false,false,false],[1,true,false,false,false,false,false,false,false,false],[2,true,false,false,false,false,false,false,false,false],[3,false,true,true,true,true,true,true,true,false],[4,false,true,true,true,true,true,true,true,true],[5,true,false,false,false,false,false,false,false,false],[6,false,true,true,true,true,true,true,true,false],[7,true,false,false,false,false,false,false,false,false]],[["t0",3,false,[],1,0,null,[["Default",5,false,1,0,false,793688982157584,[["images/sena_ui_frame_result-sheet0.png",699455,0,0,875,720,1,0.5005714297294617,0.5,[],[-0.4146148264408112,-0.3859879970550537,0.05669057369232178,-0.5,0.4994285702705383,-0.3815540075302124,0.4994285702705383,-0.007573008537292481,0.4994285702705383,0.4284909963607788,0.05669057369232178,0.5,-0.4739784300327301,0.4210999608039856,-0.5005714297294617,-0.007573008537292481],0]]]],[["MoveTo",8,920348499201537]],false,false,369380466351656,[],null],["t1",3,false,[],0,0,null,[["Default",5,false,1,0,false,800486011174997,[["images/sena_btn_replay-sheet0.png",89815,0,0,391,174,1,0.5012787580490112,0.5,[],[-0.5012787580490112,-0.5,0.1341402530670166,-0.5,0.4987212419509888,-0.5,0.4987212419509888,-0.5,0.4987212419509888,0.2284250259399414,0.1341402530670166,0.5,-0.5012787580490112,0.2284250259399414,-0.5012787580490112,-0.5],0]]]],[],false,false,113078063989384,[],null],["t2",3,false,[],0,0,null,[["Default",0,false,1,0,false,359527118583899,[["images/asset3-sheet0.png",7266,0,0,82,97,1,0.5,0.5051546096801758,[],[-0.4024389982223511,-0.5051546096801758,0.4024389982223511,-0.5051546096801758,0.4024389982223511,0.4948453903198242,-0.4024389982223511,0.4948453903198242],0],["images/asset3-sheet1.png",10773,0,0,82,97,1,0.5,0.5051546096801758,[],[],0]]]],[],false,false,316569445899063,[],null],["t3",3,false,[826794036185700,449325419484337,850774566536162,233953303989882,584697667322200,915051182566084,709980987140611,864916470115508,671424700857603],3,0,null,[["Default",0,false,1,0,false,766361138730018,[["images/answers-sheet0.png",90997,695,1,199,85,1,0.5025125741958618,0.5058823823928833,[],[],0],["images/answers-sheet0.png",90997,262,1,431,146,1,0.5011600852012634,0.5,[],[],0],["images/answers-sheet0.png",90997,695,88,173,85,1,0.5028901696205139,0.5058823823928833,[],[],0],["images/answers-sheet0.png",90997,262,149,173,85,1,0.5028901696205139,0.5058823823928833,[],[],0],["images/answers-sheet0.png",90997,437,149,173,85,1,0.5028901696205139,0.5058823823928833,[],[],0],["images/answers-sheet0.png",90997,870,88,145,97,1,0.4965517222881317,0.5567010045051575,[],[-0.4965517222881317,-0.4432989954948425,2.682209014892578e-007,-0.5567010045051575,0.5034482479095459,-0.4432989954948425,0.5034482479095459,0,0.4758622944355011,0.4020619988441467,2.682209014892578e-007,0.4432989954948425,-0.4758620262145996,0.4020619988441467,-0.4965517222881317,0],0],["images/answers-sheet0.png",90997,1,1,259,568,1,0.5019304752349854,0.5,[],[],0]]]],[["MoveTo",8,604855247345446],["Fade",9,172183085978858],["DragDrop",10,421888048208530]],false,false,521274050538780,[],null],["t4",7,false,[],0,0,null,null,[],false,false,786570836240034,[],null,[1]],["t5",2,false,[],0,0,null,null,[],false,false,293329078829759,[],null,[]],["t6",1,false,[],0,0,null,null,[],false,false,309246988327533,[],null,[]],["t7",4,false,[418166495958066],1,0,["images/txt_answerss.png",94531,0],null,[["Pin",11,637804778596767]],false,false,609667421047101,[],null],["t8",3,false,[567648729382427,954939568499611,879557559304754,808559794937329,997079567163161,911603245442015,133986401252626],0,0,null,[["Default",0,false,1,0,false,163248314795401,[["images/answers-sheet0.png",90997,695,1,199,85,1,0.5025125741958618,0.5058823823928833,[],[],0],["images/checker_frame-sheet0.png",11183,0,0,199,82,1,0.5025125741958618,0.5,[],[],0]]]],[],false,false,519636697009154,[],null],["t9",3,false,[],0,0,null,[["Default",5,false,1,0,false,157803278794484,[["images/btn_submit-sheet0.png",12137,0,0,301,110,1,0.5016611218452454,0.5,[],[-0.411885529756546,-0.2352940142154694,-0.002908110618591309,-0.5,0.4085628986358643,-0.2352940142154694,0.4958449006080627,0,0.4110568761825562,0.2426469922065735,-0.002908110618591309,0.4779409766197205,-0.4143793284893036,0.2426469922065735,-0.4991673529148102,0],0]]]],[],false,false,588453873694452,[],null],["t10",4,false,[942862735447965],1,0,["images/txt_instructions.png",148918,0],null,[["Pin",11,111792501546005]],false,false,432979753740528,[],null],["t11",3,false,[],0,0,null,[["Default",5,false,1,0,false,721392848979743,[["images/btn_submit2-sheet0.png",187044,0,0,888,132,1,0.5,0.5,[],[-0.5,0.4549919962882996,0.06428402662277222,-0.5,0.5,0.4549919962882996,0.5,0.5,0.5,0.5,0.06428402662277222,0.5,-0.5,0.5,-0.5,0.5],0]]]],[],false,false,946625081997369,[],null],["t12",3,false,[],1,0,null,[["Default",5,false,1,0,false,721783848790452,[["images/btn_next-sheet0.png",49832,0,0,356,148,1,0.5,0.5,[],[-0.3533200025558472,-0.3626599907875061,-0.009059995412826538,-0.494535505771637,0.3352019786834717,-0.3461750149726868,0.4982730150222778,0,0.3533200025558472,0.3626599907875061,-0.009059995412826538,0.4945359826087952,-0.3352019786834717,0.3461750149726868,-0.4982728660106659,0],0]]]],[["Sine",12,402421837074546]],false,false,818775859313496,[],null],["t13",3,false,[],0,0,null,[["Default",5,false,1,0,false,921392178132129,[["images/btn_play-sheet0.png",134711,0,0,346,346,1,0.5028901696205139,0.5,[],[],0],["images/btn_play-sheet1.png",168,0,0,250,250,1,0.5,0.5,[],[],3]]]],[],false,false,762262472806633,[],null],["t14",0,false,[],0,0,null,null,[],false,false,975221106550751,[],null,[0,0,0,1,1,600,600,10000,1]],["t15",3,false,[],0,0,null,[["Default",5,false,1,0,false,652654928968960,[["images/bg-sheet0.png",1099565,0,0,1400,900,1,0.5,0.5,[],[],1]]]],[],false,false,535930218119366,[],null],["t16",3,false,[],1,0,null,[["Default",5,false,1,0,false,916970518775193,[["images/frame_door-sheet0.png",1822354,0,0,1920,1080,1,0.5,0.5,[],[],0]]]],[["EaseTween",13,688493971614921]],false,false,673749981300323,[],null],["t17",3,false,[],1,0,null,[["Default",5,false,1,0,false,934719015921392,[["images/frame_door_left-sheet0.png",539840,0,0,469,822,1,0.5010660886764526,0.5,[],[-0.498933881521225,-0.4987834393978119,0.4968019127845764,-0.4987834393978119,0.4946699142456055,0.4975669980049133,-0.498933881521225,0.4987829923629761],0]]]],[["MoveTo",8,401776860679972]],false,false,153559747848512,[],null],["t18",3,false,[],1,0,null,[["Default",5,false,1,0,false,742259468763493,[["images/frame_door_right-sheet0.png",543214,0,0,467,821,1,0.5010706782341003,0.5006090402603149,[],[-0.5010706782341003,-0.5006090402603149,0.4967883229255676,-0.4993910193443298,0.4989293217658997,0.4993909597396851,-0.4967880249023438,0.4969549775123596],0]]]],[["MoveTo",8,142691375562698]],false,false,951982130871283,[],null],["t19",3,false,[],1,0,null,[["Default",5,false,1,0,false,596630541764877,[["images/hand_right-sheet0.png",64594,0,0,155,346,1,0.5032258033752441,0.5,[],[],0]]]],[["Pin",11,481474855082544]],false,false,888342496691520,[],null],["t20",3,false,[],1,0,null,[["Default",0,false,1,0,false,756321102172276,[["images/hand_left-sheet0.png",70922,0,0,193,346,1,0.5025906562805176,0.5,[],[],0]]]],[["Pin",11,120839381152826]],false,false,928771787327892,[],null],["t21",3,false,[],0,0,null,[["Default",5,false,1,0,false,781887315764771,[["images/ao_vang_quan_xanh-sheet0.png",1040452,0,0,774,922,1,0.5,0.5,[],[-0.2894060015678406,0.1757050156593323,0.03746801614761353,-0.4989154040813446,0.2945740222930908,0.2342730164527893,0.1860470175743103,-0.005423009395599365,0.3888890147209168,-0.1659440100193024,0.03746801614761353,0.4707159996032715,-0.3255810141563416,-0.1561819911003113,-0.2080099880695343,-0.005423009395599365],0]]]],[],false,false,515036206907780,[],null],["t22",3,false,[],0,0,null,[["Default",5,false,1,0,false,430849449557794,[["images/sprite-sheet0.png",168,0,0,250,250,1,0.5,0.5,[],[],0]]]],[],false,false,787263586433186,[],null],["t23",3,false,[],0,0,null,[["Default",5,false,1,0,false,672711485213709,[["images/khung_thoai-sheet0.png",1053981,0,0,1381,809,1,0.4989138245582581,0.5018541216850281,[],[0.4622311592102051,-0.003646135330200195,0.4008821845054627,0.3225188851356506,0.002108156681060791,0.3440238833427429,-0.4027993083000183,0.3296868801116943,-0.4723289310932159,-0.003646135330200195,-0.4477890133857727,-0.412248432636261,0.002108156681060791,-0.4695960283279419,0.4438261985778809,-0.4014961123466492],0]]]],[],false,false,445582981850455,[],null],["t24",3,false,[],2,0,null,[["Default",0,false,1,0,false,626314912871027,[["images/human-sheet0.png",645079,0,0,607,1043,1,0.5008237361907959,0.5004794001579285,[],[-0.2275567352771759,-0.4611594974994659,0.2417502403259277,-0.07539939880371094,-0.4117148518562317,0.4091916084289551,-0.3562697172164917,-0.07539939880371094],0]]]],[["MoveTo",8,598827168257369],["Fade",9,191588432094867]],false,false,703834322280398,[],null],["t25",3,false,[],1,0,null,[["Default",5,false,1,0,false,185542005979120,[["images/khung_thoai2-sheet0.png",31535,0,0,304,283,1,0.5197368264198303,0.5017668008804321,[],[0.4802631735801697,-0.003533810377120972,0.4802631735801697,0.3180211782455444,0.2927631735801697,0.3392221927642822,-0.3585528135299683,0.3250882029533386,-0.4703947305679321,-0.003533810377120972,-0.4309210181236267,-0.406360387802124,0.2927631735801697,-0.4628975093364716,0.4802631735801697,-0.395759791135788],0]]]],[["Pin",11,512817705122333]],false,false,469674199718312,[],null],["t26",3,false,[],0,0,null,[["Default",5,false,1,0,false,127783747161360,[["images/khung_diem-sheet0.png",16479,0,0,245,100,1,0.5020408034324646,0.5,[],[],0]]]],[],false,false,811404919858500,[],null],["t27",3,false,[],1,0,null,[["Default",5,false,1,0,false,859799537201858,[["images/avatar-sheet0.png",1500573,0,0,1024,1024,1,0.5,0.5,[],[],1]]]],[["Pin",11,171038971830502]],false,false,837535844611312,[],null],["t28",3,false,[],0,0,null,[["Default",5,false,1,0,false,552699784638859,[["images/star_-sheet0.png",22582,0,0,127,134,1,0.5039370059967041,0.5,[],[],0]]]],[],false,false,412169584854831,[],null],["t29",3,false,[],0,0,null,[["Default",0,false,1,0,false,739926277400680,[["images/frame_score-sheet0.png",5875,1,134,270,64,1,0.5,0.5,[],[0.3552079796791077,-0.5,0.5,0.5,0.5,0.5,-0.5,0.5],0],["images/frame_score-sheet0.png",5875,1,1,316,64,1,0.5,0.5,[],[0.2940059900283814,-0.5,0.5,0.5,0.4744920134544373,0.5,-0.5,0.5],0],["images/frame_score-sheet0.png",5875,1,67,305,65,1,0.5016393661499023,0.5076923370361328,[],[0.3341176509857178,-0.5076923370361328,0.4983606338500977,0.4923076629638672,0.4983606338500977,0.4923076629638672,-0.5016393661499023,0.4923076629638672],0]]]],[],false,false,819525228363299,[],null],["t30",3,false,[],0,0,null,[["Default",5,false,1,0,false,164220506748003,[["images/dong_ho-sheet0.png",24920,0,0,107,131,1,0.5046728849411011,0.5038167834281921,[],[],0]]]],[],false,false,854740896764654,[],null],["t31",3,false,[],0,0,null,[["Default",5,false,1,0,false,116956179455582,[["images/coin-sheet0.png",17848,0,0,100,98,1,0.5,0.5,[],[-0.3600000143051148,-0.357142984867096,0,-0.5,0.3500000238418579,-0.3469389975070953,0.5,0,0.3600000143051148,0.357142984867096,0,0.5,-0.3499999940395355,0.3469390273094177,-0.5,0],0]]]],[],false,false,305346690752957,[],null],["t32",4,false,[940286636988100],3,0,["images/txt_instructions.png",148918,0],null,[["Pin",11,834701880706737],["Fade",9,958123565456535],["MoveTo",8,973282322763825]],false,false,728262842526683,[],null],["t33",4,false,[344679164944695],1,0,["images/txt_instructions.png",148918,0],null,[["Pin",11,128644578527300]],false,false,522216010047558,[],null],["t34",4,false,[731123512951619],1,0,["images/txt_instructions.png",148918,0],null,[["Pin",11,516508734324126]],false,false,340765955288849,[],null],["t35",4,false,[692803175473927],1,0,["images/txt_instructions.png",148918,0],null,[["Pin",11,545779800810831]],false,false,591329026570186,[],null],["t36",4,false,[826587350959856],1,0,["images/txt_instructions.png",148918,0],null,[["Pin",11,553083715854589]],false,false,708446667476819,[],null],["t37",5,false,[],0,0,null,null,[],false,false,818073484425726,[],null,["default"]],["t38",3,false,[],0,0,null,[["Default",5,false,1,0,false,878733427822656,[["images/sena_ui_frame_intro-sheet0.png",155,0,0,250,250,1,0.5,0.5,[],[],4]]]],[],false,false,722501346055698,[],null],["t39",4,false,[529603772061051],1,0,["images/txt_instructions.png",148918,0],null,[["Pin",11,762382317930428]],false,false,533138744901290,[],null],["t40",4,false,[472340567293658],1,0,["images/txt_instructions.png",148918,0],null,[["Pin",11,585006722065273]],false,false,462260847926939,[],null],["t41",4,false,[623658190405060],1,0,["images/txt_instructions.png",148918,0],null,[["Pin",11,158286730532340]],false,false,325060752227160,[],null],["t42",6,false,[],1,0,null,null,[["Pin",11,983903129678407]],false,false,194612180994682,[],null],["t43",6,false,[],1,0,null,null,[["Pin",11,253592077507409]],false,false,557129552997296,[],null],["t44",6,false,[],1,0,null,null,[["Pin",11,575662582966304]],false,false,454879628680945,[],null],["t45",3,false,[],1,0,null,[["Default",5,false,1,0,false,514358608673893,[["images/sena_title_leaderboard-sheet0.png",15453,0,0,378,86,1,0.5,0.5,[],[-0.4920634925365448,-0.4651162922382355,0,-0.4767442047595978,0.4814810156822205,-0.4186046123504639,0.4867720007896423,0.4418600201606751,0,0.4767439961433411,-0.4841269850730896,0.4302330017089844],0]]]],[["Pin",11,291293272927256]],false,false,678289200328767,[],null],["t46",6,false,[],1,0,null,null,[["Pin",11,210576751902792]],false,false,544994622581180,[],null],["t47",3,false,[],1,0,null,[["Default",5,false,1,0,false,768984330229325,[["images/sena_ui_frame_leaderboard-sheet0.png",819163,0,0,1004,711,1,0.5,0.5007032155990601,[],[-0.2545090019702911,0.2284637689590454,0,-0.301298201084137,0.2555109858512878,0.2254867553710938,0.1833670139312744,-0.0007032155990600586,0.4979959726333618,0.493344783782959,-0.4989979863166809,0.4963207840919495,-0.218436986207962,-0.0007032155990600586],0]]]],[["MoveTo",8,138738316639915]],false,false,999135729758638,[],null],["t48",3,false,[],2,0,null,[["Default",5,false,1,0,false,336741884175694,[["images/sena_btn_exit-sheet0.png",54942,0,0,353,110,1,0.5014164447784424,0.5,[],[-0.4819989502429962,-0.4772726893424988,-0.006270438432693481,-0.5,0.4014965295791626,-0.3863639831542969,0.4985835552215576,0,0.4014965295791626,0.3863639831542969,-0.006270438432693481,0.5,-0.4819989502429962,0.4772729873657227],0]]]],[["Pin",11,560194038481806],["Sine",12,525138810006428]],false,false,502189296415963,[],null],["t49",3,false,[],1,0,null,[["Default",0,false,1,0,false,194609735200710,[["images/sena_ui_item_bg-sheet0.png",193967,1,1,710,89,1,0.5,0.5056179761886597,[],[-0.49203822016716,-0.4551129639148712,0,-0.4955169856548309,0.4920380115509033,-0.4551129639148712,0.4872609972953796,0.4135740399360657,0,0.4438770413398743,-0.485668808221817,0.4034730195999146],0],["images/sena_ui_item_bg-sheet0.png",193967,1,92,710,89,1,0.5,0.5056179761886597,[],[-0.49203822016716,-0.4551129639148712,0,-0.4955169856548309,0.4920380115509033,-0.4551129639148712,0.4872609972953796,0.4135740399360657,0,0.4438770413398743,-0.485668808221817,0.4034730195999146],0],["images/sena_ui_item_bg-sheet0.png",193967,1,183,710,89,1,0.5,0.5056179761886597,[],[-0.49203822016716,-0.4551129639148712,0,-0.4955169856548309,0.4920380115509033,-0.4551129639148712,0.4872609972953796,0.4135740399360657,0,0.4438770413398743,-0.485668808221817,0.4034730195999146],0]]]],[["Pin",11,977629152659308]],false,false,893411604042085,[],null],["t50",6,false,[],1,0,null,null,[["Pin",11,384847762937375]],false,false,631581457940413,[],null],["t51",3,false,[],1,0,null,[["Default",5,false,1,0,false,442906146329397,[["images/sena_ui_item_bg_user_rank-sheet0.png",140970,0,0,906,106,1,0.5,0.5,[],[-0.49203822016716,-0.449999988079071,0,-0.4900000095367432,0.4920380115509033,-0.449999988079071,0.4872609972953796,0.4200000166893005,0,0.449999988079071,-0.485668808221817,0.4100000262260437],0]]]],[["Pin",11,735755786104278]],false,false,364823197906140,[],null],["t52",3,false,[],2,0,null,[["Default",5,false,1,0,false,365534682662000,[["images/sena_btn_leaderboard-sheet0.png",602377,0,0,711,706,1,0.502109706401825,0.5,[],[-0.502109706401825,-0.5,0.4978902935981751,-0.5,0.4978902935981751,-0.5,0.4978902935981751,-0.5,0.4978902935981751,0.5,0.4978902935981751,0.5,-0.502109706401825,0.5,-0.502109706401825,-0.5],0]]]],[["Sine",12,416492860918880],["Pin",11,970999859717446]],false,false,104446272667811,[],null],["t53",3,false,[],1,0,null,[["Default",0,false,1,0,false,361663207643924,[["images/sena_ui_number_rank-sheet1.png",8104,0,0,80,73,1,0.5,0.5068492889404297,[],[-0.449999988079071,-0.4520547986030579,0,-0.5068492889404297,0.4374999403953552,-0.4383561015129089,0.4874999523162842,-0.0136982798576355,0.4374999403953552,0.4246577024459839,0,0.4794517159461975,-0.4375,0.4246577024459839,-0.5,-0.0136982798576355],0],["images/sena_ui_number_rank-sheet0.png",9587,0,0,81,75,1,0.5061728358268738,0.5066666603088379,[],[-0.4561728239059448,-0.4518721699714661,-0.006172835826873779,-0.5066666603088379,0.4313271045684815,-0.4381734728813171,0.4813271164894104,-0.0135156512260437,0.4313271045684815,0.4248403310775757,-0.006172835826873779,0.4796343445777893,-0.4436728358268738,0.4248403310775757,-0.5061728358268738,-0.0135156512260437],0],["images/sena_ui_number_rank-sheet2.png",9308,0,0,80,73,1,0.5,0.5068492889404297,[],[-0.449999988079071,-0.4520547986030579,0,-0.5068492889404297,0.4374999403953552,-0.4383561015129089,0.4874999523162842,-0.0136982798576355,0.4374999403953552,0.4246577024459839,0,0.4794517159461975,-0.4375,0.4246577024459839,-0.5,-0.0136982798576355],0]]]],[["Pin",11,797661570651107]],false,false,508062575001136,[],null],["t54",3,false,[],1,0,null,[["Default",5,false,1,0,false,448852033052573,[["images/btn_next-sheet0.png",49832,0,0,356,148,1,0.5,0.5,[],[-0.4410111904144287,-0.3581079840660095,0,-0.4932432472705841,0.4269660115242004,-0.3243240118026733,0.4662920236587524,0,0.4101120233535767,0.2837839722633362,0,0.4189190268516541,-0.4269663095474243,0.3243240118026733,-0.4971910119056702,0],0]]]],[["Sine",12,778929599409288]],false,false,544411999059092,[],null],["t55",6,false,[],1,0,null,null,[["Pin",11,965180744558262]],false,false,257844620587332,[],null],["t56",6,false,[],1,0,null,null,[["Pin",11,668111541658451]],false,false,865512087815474,[],null],["t57",6,false,[],1,0,null,null,[["Pin",11,983629863781910]],false,false,452023984157524,[],null],["t58",6,false,[],1,0,null,null,[["Pin",11,621704806901910]],false,false,108820901806782,[],null],["t59",3,false,[],2,0,null,[["Default",5,false,1,0,false,325577231432987,[["images/sena_fx_wrong_mark-sheet0.png",27271,0,0,140,140,1,0.5,0.5,[],[-0.08866998553276062,0.05115598440170288,0,-0.05821299552917481,0.08374398946762085,0.05821299552917481,0.07635402679443359,-0.001763999462127686,0.1009849905967712,-0.03351700305938721,0,0.1005499958992004,-0.105910986661911,-0.02645999193191528,-0.08374398946762085,-0.001763999462127686],0]]]],[["Fade",9,938090566638553],["Pin",11,922984705911085]],false,false,786659809200098,[],null],["t60",3,false,[],2,0,null,[["Default",5,false,1,0,false,199500828138837,[["images/sena_fx_correct_mark-sheet0.png",31182,0,0,140,140,1,0.5,0.5071428418159485,[],[-0.03694498538970947,-0.01037183403968811,0,-0.05661284923553467,0.4187189936637878,-0.4319769442081451,0.08374398946762085,-0.004931867122650147,0,0.133790135383606,-0.280788004398346,0.2725121378898621,-0.03940901160240173,-0.004931867122650147],0]]]],[["Fade",9,351180598525433],["Pin",11,692899677986212]],false,false,185378619927884,[],null],["t61",6,false,[],0,0,null,null,[],false,false,755298125283785,[],null],["t62",3,true,[],1,0,null,null,[["Pin",11,943483328563522]],false,false,280951626473829,[],null]],[[62,11,29,1,28]],[["Intro",1200,1200,false,"Intro",616521222166130,[["Layer 0",0,377782185880785,true,[255,255,255],true,0,0,1,false,false,0,0,0,[[[600,600,0,2110.940673828125,1357.033325195313,0,0,1,0.5,0.5,0,0,[]],15,14,[],[],[0,"Default",0,1]],[[-2504,-1046,0,875,720,0,0,1,0.5005714297294617,0.5,0,0,[]],0,1,[],[[1,1200,0,0]],[0,"Default",0,1]],[[-805,-1058,0,445,260,0,0,1,0.5,0.5,0,0,[]],10,20,[["A"]],[[]],[55,67,"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789.,;:?!-_~#\"'&()[]|`/@°+=*$£€<>%ÁÀẢẠÃĂẰẮẶẲẴÂẦẤẬẨẪĐÉÈẺẸẼÊỀẾỆỂỄÍÌỊỈĨÓÒỌỎÕÔỒỐỘỔỖƠỜỚỢỞỠÚÙỤỦŨƯỪỨỰỬỮÝỲỴỶỸáàảạãăằắặẳẵâầấậẩẫđéèẻẹẽêềếệểễíìịỉĩóòọỏõôồốộổỗơờớợởỡúùụủũưừứựửữýỳỵỷỹ","38",46,0,1,1,1,0,0,0,"{\"\"c2array\"\":true,\"\"size\"\":[2,32,1],\"\"data\"\":[[[12],[13],[14],[16],[17],[18],[19],[20],[21],[22],[23],[24],[29],[30],[31],[32],[33],[34],[35],[36],[37],[38],[39],[40],[41],[42],[43],[44],[45],[46],[47],[53]],[[\"\"il.|ị\"\"],[\"\"I,:!Ị\"\"],[\"\";'\"\"],[\"\"Ỉì\"\"],[\"\"`ÍÌíỉ\"\"],[\"\"j()[]\"\"],[\"\"-\"\"],[\"\"/\"\"],[\"\"t\"\"],[\"\"1°\"\"],[\"\"fr*Ĩĩ\"\"],[\"\"\\\"\"\"\"],[\"\"Jhnuz09úùụủũ\"\"],[\"\"Faceks235678$áàảạãăằắặẳẵâầấậẩẫéèẻẹẽêềếệểễ\"\"],[\"\"Ldgq?+=<>\"\"],[\"\"bp4~#\"\"],[\"\"EPovxy£€ÉÈẺẸẼÊỀẾỆỂỄóòọỏõôồốộổỗýỳỵỷỹ\"\"],[\"\"HNTU_ÚÙỤỦŨđ\"\"],[\"\"SZ\"\"],[\"\"BD\"\"],[\"\"C\"\"],[\"\"KRưừứựửữ\"\"],[\"\"GVXY&ÝỲỴỶỸ\"\"],[\"\"MĐơờớợởỡ\"\"],[\"\"OÓÒỌỎÕÔỒỐỘỔỖ\"\"],[\"\"AQÁÀẢẠÃĂẰẮẶẲẴÂẦẤẬẨẪ\"\"],[\"\"ƯỪỨỰỬỮ\"\"],[\"\"m\"\"],[\"\"w\"\"],[\"\"%\"\"],[\"\"ƠỜỚỢỞỠ\"\"],[\"\"W@\"\"]]]}",8]],[[-3161,439,0,543.1068725585938,951.884521484375,0,0,1,0.5010660886764526,0.5,0,0,[]],17,29,[],[[1,600,0,0]],[0,"Default",0,1]],[[-2618,439,0,543.1069946289063,951.885009765625,0,0,1,0.5010706782341003,0.5006090402603149,0,0,[]],18,30,[],[[1,600,0,0]],[0,"Default",0,1]],[[-2796,410,0,155,346,0,0,1,0.5032258033752441,0.5,0,0,[]],19,28,[],[[]],[0,"Default",1,1]],[[-2997,410,0,193,346,0,0,1,0.5025906562805176,0.5,0,0,[]],20,34,[],[[]],[0,"Default",0,1]],[[-2890,414,0,2229.62109375,1254.161987304688,0,0,1,0.5,0.5,0,0,[]],16,21,[],[[0,1,0,"current","2",1,"0,0",0,0,1,0,""]],[0,"Default",0,1]],[[600,600.0000610351563,0,2522.37109375,1467.688598632813,0,0,0.699999988079071,0.5,0.5,0,0,[]],38,24,[],[],[0,"Default",0,1]]],[]],["Scenario",1,283182443100177,true,[255,255,255],true,0,0,1,false,false,0,0,0,[[[598.792236328125,598,0,1111.969360351563,716.6204223632813,0,0,1,0.4989138245582581,0.5018541216850281,0,0,[]],23,40,[],[],[0,"Default",0,1]],[[598.792236328125,993,0,251.352294921875,104.4947738647461,0,0,1,0.5,0.5,0,0,[]],54,68,[],[[1,2,0,1,1,0,0,10,10]],[0,"Default",0,1]],[[597.792236328125,670,0,967,423,0,0,1,0.5,0.5,0,0,[]],61,51,[],[],["Text",0,"bold 36pt Arial","rgb(0,0,0)",1,1,4,0,0]]],[]]],[],[]],["Result",1200,1200,false,"Result",499473104045564,[["Layer 0",0,215265142032865,true,[255,255,255],true,0,0,1,false,false,0,0,0,[[[600,600,0,1625.765380859375,1045.135009765625,0,0,1,0.5,0.5,0,0,[]],15,11,[],[],[0,"Default",0,1]],[[600.5,628.5,0,875,720,0,0,1,0.5005714297294617,0.5,0,0,[]],0,22,[],[[1,1200,0,0]],[0,"Default",0,1]],[[-544,-469,0,445,273,0,0,1,0.5,0.5,0,0,[]],10,25,[["A"]],[[]],[55,67,"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789.,;:?!-_~#\"'&()[]|`/@°+=*$£€<>%ÁÀẢẠÃĂẰẮẶẲẴÂẦẤẬẨẪĐÉÈẺẸẼÊỀẾỆỂỄÍÌỊỈĨÓÒỌỎÕÔỒỐỘỔỖƠỜỚỢỞỠÚÙỤỦŨƯỪỨỰỬỮÝỲỴỶỸáàảạãăằắặẳẵâầấậẩẫđéèẻẹẽêềếệểễíìịỉĩóòọỏõôồốộổỗơờớợởỡúùụủũưừứựửữýỳỵỷỹ","38",46,0,1,1,1,0,0,0,"{\"\"c2array\"\":true,\"\"size\"\":[2,32,1],\"\"data\"\":[[[12],[13],[14],[16],[17],[18],[19],[20],[21],[22],[23],[24],[29],[30],[31],[32],[33],[34],[35],[36],[37],[38],[39],[40],[41],[42],[43],[44],[45],[46],[47],[53]],[[\"\"il.|ị\"\"],[\"\"I,:!Ị\"\"],[\"\";'\"\"],[\"\"Ỉì\"\"],[\"\"`ÍÌíỉ\"\"],[\"\"j()[]\"\"],[\"\"-\"\"],[\"\"/\"\"],[\"\"t\"\"],[\"\"1°\"\"],[\"\"fr*Ĩĩ\"\"],[\"\"\\\"\"\"\"],[\"\"Jhnuz09úùụủũ\"\"],[\"\"Faceks235678$áàảạãăằắặẳẵâầấậẩẫéèẻẹẽêềếệểễ\"\"],[\"\"Ldgq?+=<>\"\"],[\"\"bp4~#\"\"],[\"\"EPovxy£€ÉÈẺẸẼÊỀẾỆỂỄóòọỏõôồốộổỗýỳỵỷỹ\"\"],[\"\"HNTU_ÚÙỤỦŨđ\"\"],[\"\"SZ\"\"],[\"\"BD\"\"],[\"\"C\"\"],[\"\"KRưừứựửữ\"\"],[\"\"GVXY&ÝỲỴỶỸ\"\"],[\"\"MĐơờớợởỡ\"\"],[\"\"OÓÒỌỎÕÔỒỐỘỔỖ\"\"],[\"\"AQÁÀẢẠÃĂẰẮẶẲẴÂẦẤẬẨẪ\"\"],[\"\"ƯỪỨỰỬỮ\"\"],[\"\"m\"\"],[\"\"w\"\"],[\"\"%\"\"],[\"\"ƠỜỚỢỞỠ\"\"],[\"\"W@\"\"]]]}",8]],[[602.5,400.5,0,712.9652709960938,105.9813232421875,0,0,1,0.5,0.5,0,0,[]],11,26,[],[[]],[0,"Default",0,1]],[[600.5,278.5,0,127,134,0,0,1,0.5039370059967041,0.5,0,0,[]],28,19,[],[[]],[0,"Default",0,1]],[[450.5,278.5,0,127,134,0,0,1,0.5039370059967041,0.5,0,0,[]],28,27,[],[[]],[0,"Default",0,1]],[[750.5,278.5,0,127,134,0,0,1,0.5039370059967041,0.5,0,0,[]],28,41,[],[[]],[0,"Default",0,1]],[[748.5,843.5,0,222,130,0,0,1,0.5,0.5,0,0,[]],39,53,[["score"]],[[]],[55,67,"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789.,;:?!-_~#\"'&()[]|`/@°+=*$£€<>%ÁÀẢẠÃĂẰẮẶẲẴÂẦẤẬẨẪĐÉÈẺẸẼÊỀẾỆỂỄÍÌỊỈĨÓÒỌỎÕÔỒỐỘỔỖƠỜỚỢỞỠÚÙỤỦŨƯỪỨỰỬỮÝỲỴỶỸáàảạãăằắặẳẵâầấậẩẫđéèẻẹẽêềếệểễíìịỉĩóòọỏõôồốộổỗơờớợởỡúùụủũưừứựửữýỳỵỷỹ","200",1.2,0,0,1,1,0,1,0,"{\"\"c2array\"\":true,\"\"size\"\":[2,32,1],\"\"data\"\":[[[12],[13],[14],[16],[17],[18],[19],[20],[21],[22],[23],[24],[29],[30],[31],[32],[33],[34],[35],[36],[37],[38],[39],[40],[41],[42],[43],[44],[45],[46],[47],[53]],[[\"\"il.|ị\"\"],[\"\"I,:!Ị\"\"],[\"\";'\"\"],[\"\"Ỉì\"\"],[\"\"`ÍÌíỉ\"\"],[\"\"j()[]\"\"],[\"\"-\"\"],[\"\"/\"\"],[\"\"t\"\"],[\"\"1°\"\"],[\"\"fr*Ĩĩ\"\"],[\"\"\\\"\"\"\"],[\"\"Jhnuz09úùụủũ\"\"],[\"\"Faceks235678$áàảạãăằắặẳẵâầấậẩẫéèẻẹẽêềếệểễ\"\"],[\"\"Ldgq?+=<>\"\"],[\"\"bp4~#\"\"],[\"\"EPovxy£€ÉÈẺẸẼÊỀẾỆỂỄóòọỏõôồốộổỗýỳỵỷỹ\"\"],[\"\"HNTU_ÚÙỤỦŨđ\"\"],[\"\"SZ\"\"],[\"\"BD\"\"],[\"\"C\"\"],[\"\"KRưừứựửữ\"\"],[\"\"GVXY&ÝỲỴỶỸ\"\"],[\"\"MĐơờớợởỡ\"\"],[\"\"OÓÒỌỎÕÔỒỐỘỔỖ\"\"],[\"\"AQÁÀẢẠÃĂẰẮẶẲẴÂẦẤẬẨẪ\"\"],[\"\"ƯỪỨỰỬỮ\"\"],[\"\"m\"\"],[\"\"w\"\"],[\"\"%\"\"],[\"\"ƠỜỚỢỞỠ\"\"],[\"\"W@\"\"]]]}",15]],[[450.5,839.5,0,292,130,0,0,1,0.5,0.5,0,0,[]],40,54,[[""]],[[]],[55,67,"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789.,;:?!-_~#\"'&()[]|`/@°+=*$£€<>%ÁÀẢẠÃĂẰẮẶẲẴÂẦẤẬẨẪĐÉÈẺẸẼÊỀẾỆỂỄÍÌỊỈĨÓÒỌỎÕÔỒỐỘỔỖƠỜỚỢỞỠÚÙỤỦŨƯỪỨỰỬỮÝỲỴỶỸáàảạãăằắặẳẵâầấậẩẫđéèẻẹẽêềếệểễíìịỉĩóòọỏõôồốộổỗơờớợởỡúùụủũưừứựửữýỳỵỷỹ","Score:",1.2,0,2,1,1,0,1,0,"{\"\"c2array\"\":true,\"\"size\"\":[2,32,1],\"\"data\"\":[[[12],[13],[14],[16],[17],[18],[19],[20],[21],[22],[23],[24],[29],[30],[31],[32],[33],[34],[35],[36],[37],[38],[39],[40],[41],[42],[43],[44],[45],[46],[47],[53]],[[\"\"il.|ị\"\"],[\"\"I,:!Ị\"\"],[\"\";'\"\"],[\"\"Ỉì\"\"],[\"\"`ÍÌíỉ\"\"],[\"\"j()[]\"\"],[\"\"-\"\"],[\"\"/\"\"],[\"\"t\"\"],[\"\"1°\"\"],[\"\"fr*Ĩĩ\"\"],[\"\"\\\"\"\"\"],[\"\"Jhnuz09úùụủũ\"\"],[\"\"Faceks235678$áàảạãăằắặẳẵâầấậẩẫéèẻẹẽêềếệểễ\"\"],[\"\"Ldgq?+=<>\"\"],[\"\"bp4~#\"\"],[\"\"EPovxy£€ÉÈẺẸẼÊỀẾỆỂỄóòọỏõôồốộổỗýỳỵỷỹ\"\"],[\"\"HNTU_ÚÙỤỦŨđ\"\"],[\"\"SZ\"\"],[\"\"BD\"\"],[\"\"C\"\"],[\"\"KRưừứựửữ\"\"],[\"\"GVXY&ÝỲỴỶỸ\"\"],[\"\"MĐơờớợởỡ\"\"],[\"\"OÓÒỌỎÕÔỒỐỘỔỖ\"\"],[\"\"AQÁÀẢẠÃĂẰẮẶẲẴÂẦẤẬẨẪ\"\"],[\"\"ƯỪỨỰỬỮ\"\"],[\"\"m\"\"],[\"\"w\"\"],[\"\"%\"\"],[\"\"ƠỜỚỢỞỠ\"\"],[\"\"W@\"\"]]]}",15]],[[450.5,695.5,0,292,130,0,0,1,0.5,0.5,0,0,[]],40,55,[[""]],[[]],[55,67,"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789.,;:?!-_~#\"'&()[]|`/@°+=*$£€<>%ÁÀẢẠÃĂẰẮẶẲẴÂẦẤẬẨẪĐÉÈẺẸẼÊỀẾỆỂỄÍÌỊỈĨÓÒỌỎÕÔỒỐỘỔỖƠỜỚỢỞỠÚÙỤỦŨƯỪỨỰỬỮÝỲỴỶỸáàảạãăằắặẳẵâầấậẩẫđéèẻẹẽêềếệểễíìịỉĩóòọỏõôồốộổỗơờớợởỡúùụủũưừứựửữýỳỵỷỹ","Correct:",1.2,0,2,1,1,0,1,0,"{\"\"c2array\"\":true,\"\"size\"\":[2,32,1],\"\"data\"\":[[[12],[13],[14],[16],[17],[18],[19],[20],[21],[22],[23],[24],[29],[30],[31],[32],[33],[34],[35],[36],[37],[38],[39],[40],[41],[42],[43],[44],[45],[46],[47],[53]],[[\"\"il.|ị\"\"],[\"\"I,:!Ị\"\"],[\"\";'\"\"],[\"\"Ỉì\"\"],[\"\"`ÍÌíỉ\"\"],[\"\"j()[]\"\"],[\"\"-\"\"],[\"\"/\"\"],[\"\"t\"\"],[\"\"1°\"\"],[\"\"fr*Ĩĩ\"\"],[\"\"\\\"\"\"\"],[\"\"Jhnuz09úùụủũ\"\"],[\"\"Faceks235678$áàảạãăằắặẳẵâầấậẩẫéèẻẹẽêềếệểễ\"\"],[\"\"Ldgq?+=<>\"\"],[\"\"bp4~#\"\"],[\"\"EPovxy£€ÉÈẺẸẼÊỀẾỆỂỄóòọỏõôồốộổỗýỳỵỷỹ\"\"],[\"\"HNTU_ÚÙỤỦŨđ\"\"],[\"\"SZ\"\"],[\"\"BD\"\"],[\"\"C\"\"],[\"\"KRưừứựửữ\"\"],[\"\"GVXY&ÝỲỴỶỸ\"\"],[\"\"MĐơờớợởỡ\"\"],[\"\"OÓÒỌỎÕÔỒỐỘỔỖ\"\"],[\"\"AQÁÀẢẠÃĂẰẮẶẲẴÂẦẤẬẨẪ\"\"],[\"\"ƯỪỨỰỬỮ\"\"],[\"\"m\"\"],[\"\"w\"\"],[\"\"%\"\"],[\"\"ƠỜỚỢỞỠ\"\"],[\"\"W@\"\"]]]}",15]],[[747.5,700.5,0,222,130,0,0,1,0.5,0.5,0,0,[]],41,56,[["A"]],[[]],[55,67,"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789.,;:?!-_~#\"'&()[]|`/@°+=*$£€<>%ÁÀẢẠÃĂẰẮẶẲẴÂẦẤẬẨẪĐÉÈẺẸẼÊỀẾỆỂỄÍÌỊỈĨÓÒỌỎÕÔỒỐỘỔỖƠỜỚỢỞỠÚÙỤỦŨƯỪỨỰỬỮÝỲỴỶỸáàảạãăằắặẳẵâầấậẩẫđéèẻẹẽêềếệểễíìịỉĩóòọỏõôồốộổỗơờớợởỡúùụủũưừứựửữýỳỵỷỹ","38",1.2,0,0,1,1,0,0,0,"{\"\"c2array\"\":true,\"\"size\"\":[2,32,1],\"\"data\"\":[[[12],[13],[14],[16],[17],[18],[19],[20],[21],[22],[23],[24],[29],[30],[31],[32],[33],[34],[35],[36],[37],[38],[39],[40],[41],[42],[43],[44],[45],[46],[47],[53]],[[\"\"il.|ị\"\"],[\"\"I,:!Ị\"\"],[\"\";'\"\"],[\"\"Ỉì\"\"],[\"\"`ÍÌíỉ\"\"],[\"\"j()[]\"\"],[\"\"-\"\"],[\"\"/\"\"],[\"\"t\"\"],[\"\"1°\"\"],[\"\"fr*Ĩĩ\"\"],[\"\"\\\"\"\"\"],[\"\"Jhnuz09úùụủũ\"\"],[\"\"Faceks235678$áàảạãăằắặẳẵâầấậẩẫéèẻẹẽêềếệểễ\"\"],[\"\"Ldgq?+=<>\"\"],[\"\"bp4~#\"\"],[\"\"EPovxy£€ÉÈẺẸẼÊỀẾỆỂỄóòọỏõôồốộổỗýỳỵỷỹ\"\"],[\"\"HNTU_ÚÙỤỦŨđ\"\"],[\"\"SZ\"\"],[\"\"BD\"\"],[\"\"C\"\"],[\"\"KRưừứựửữ\"\"],[\"\"GVXY&ÝỲỴỶỸ\"\"],[\"\"MĐơờớợởỡ\"\"],[\"\"OÓÒỌỎÕÔỒỐỘỔỖ\"\"],[\"\"AQÁÀẢẠÃĂẰẮẶẲẴÂẦẤẬẨẪ\"\"],[\"\"ƯỪỨỰỬỮ\"\"],[\"\"m\"\"],[\"\"w\"\"],[\"\"%\"\"],[\"\"ƠỜỚỢỞỠ\"\"],[\"\"W@\"\"]]]}",8]],[[600.5,551.5,0,140.2151336669922,139.2290954589844,0,0,1,0.502109706401825,0.5,0,0,[]],52,67,[],[[1,2,0,1,1,0,0,5,5],[]],[0,"Default",0,1]]],[]],["Leaderboard",1,877682455070534,true,[255,255,255],true,0,0,1,false,false,0,0,0,[[[600,599.9999389648438,0,1625.765380859375,1045.135009765625,0,0,1,0.5,0.5,0,0,[]],15,38,[],[],[0,"Default",0,1]],[[603,528.9999389648438,0,904.3123168945313,694.447021484375,0,0,1,0.5,0.5007032155990601,0,0,[]],47,12,[],[[1,1200,0,0]],[0,"Default",0,1]],[[609.4100341796875,404.3887329101563,0,786.626220703125,95.22135925292969,0,0,1,0.5,0.5056179761886597,0,0,[]],49,42,[],[[]],[0,"Default",0,1]],[[553,395.6845092773438,0,400.8202514648438,88,0,0,1,0.5,0.5,0,0,[]],43,43,[],[[]],["Text",0,"bold 20pt Arial","rgb(0,51,0)",0,1,4,0,0]],[[803,399.432861328125,0,210.3880004882813,88,0,0,1,0.5,0.5,0,0,[]],42,44,[],[[]],["Text",0,"bold 20pt Arial","rgb(0,51,0)",0,1,4,0,0]],[[609.4100341796875,500.6133422851563,0,786.626220703125,95.22135925292969,0,0,1,0.5,0.5056179761886597,0,0,[]],49,50,[],[[]],[0,"Default",0,1]],[[553,494.7214660644531,0,400.8202514648438,88,0,0,1,0.5,0.5,0,0,[]],43,57,[],[[]],["Text",0,"bold 20pt Arial","rgb(0,51,0)",0,1,4,0,0]],[[803,494.7214660644531,0,210.3880004882813,88,0,0,1,0.5,0.5,0,0,[]],42,58,[],[[]],["Text",0,"bold 20pt Arial","rgb(0,51,0)",0,1,4,0,0]],[[606.8521728515625,600.946044921875,0,786.626220703125,95.22135925292969,0,0,1,0.5,0.5056179761886597,0,0,[]],49,59,[],[[]],[0,"Default",0,1]],[[553,599.3139038085938,0,400.8202514648438,88,0,0,1,0.5,0.5,0,0,[]],43,60,[],[[]],["Text",0,"bold 20pt Arial","rgb(0,51,0)",0,1,4,0,0]],[[803,597.4390869140625,0,210.3880004882813,88,0,0,1,0.5,0.5,0,0,[]],42,61,[],[[]],["Text",0,"bold 20pt Arial","rgb(0,51,0)",0,1,4,0,0]],[[607,785.9999389648438,0,786.57666015625,102.4394989013672,0,0,1,0.5,0.5,0,0,[]],51,62,[],[[]],[0,"Default",0,1]],[[573,784.9999389648438,0,400.8200073242188,88,0,0,1,0.5,0.5,0,0,[]],46,63,[],[[]],["Text",0,"bold 20pt Arial","rgb(0,51,51)",0,1,4,0,0]],[[803,785.9999389648438,0,210.3880615234375,88,0,0,1,0.5,0.5,0,0,[]],50,64,[],[[]],["Text",0,"bold 20pt Arial","rgb(0,51,51)",0,1,4,0,0]],[[354.9056091308594,394.74853515625,0,105.1577758789063,88,0,0,1,0.5,0.5,0,0,[]],44,65,[],[[]],["Text",0,"bold 20pt Arial","rgb(0,51,0)",1,1,4,0,0]],[[349.9223022460938,400.6976928710938,0,80,73,0,0,1,0.5,0.5068492889404297,0,0,[]],53,66,[],[[]],[0,"Default",0,1]],[[600.5,928.9999389648438,0,353,110,0,0,1,0.5014164447784424,0.5,0,0,[]],48,46,[],[[],[1,2,0,1,0,0,0,5,5]],[0,"Default",0,1]],[[1044,608.9999389648438,0,100,94,0,0,1,0.5,0.5,0,0,[]],44,2,[],[[]],["Text",0,"bold 20pt Arial","rgb(0,0,0)",1,1,4,0,0]],[[933,784.9999389648438,0,100,88,0,0,1,0.5,0.5,0,0,[]],55,10,[],[[]],["Text",0,"bold 20pt Arial","rgb(0,0,0)",0,1,4,0,0]]],[]]],[],[]],["Game",1200,1200,false,"Game",288730111597454,[["Layer 0",0,763235347287340,true,[255,255,255],true,0,0,1,false,false,0,0,0,[[[600,600,0,2197.21728515625,1412.496948242188,0,0,1,0.5,0.5,0,0,[]],15,37,[],[],[0,"Default",0,1]],[[212.0301818847656,656,0,199,85,0,0,1,0.5025125741958618,0.5058823823928833,0,0,[]],3,3,[[0],[0],[0],[0],[0],[""],[0],[0],[0]],[[1,1200,0,0],[1,0.5,0,0,0],[0,1]],[0,"Default",0,1]],[[472.0301513671875,656,0,199,85,0,0,1,0.5025125741958618,0.5058823823928833,0,0,[]],3,4,[[0],[0],[0],[0],[0],[""],[0],[0],[0]],[[1,1200,0,0],[1,0.5,0,0,0],[0,1]],[0,"Default",0,1]],[[732.0301513671875,656,0,199,85,0,0,1,0.5025125741958618,0.5058823823928833,0,0,[]],3,5,[[0],[0],[0],[0],[0],[""],[0],[0],[0]],[[1,1200,0,0],[1,0.5,0,0,0],[0,1]],[0,"Default",0,1]],[[992.0301513671875,656,0,199,85,0,0,1,0.5025125741958618,0.5058823823928833,0,0,[]],3,6,[[0],[0],[0],[0],[0],[""],[0],[0],[0]],[[1,1200,0,0],[1,0.5,0,0,0],[0,1]],[0,"Default",0,1]],[[-823,762,0,199,85,0,0,1,0.5025125741958618,0.5058823823928833,0,0,[]],8,9,[[""],[0],[0],[0],[0],[0],[""]],[],[0,"Default",0,1]],[[-1648,64,0,607,1043,0,0,1,0.5008237361907959,0.5004794001579285,0,0,[]],24,31,[],[[1,1200,0,0],[0,0.5,0,0,0]],[1,"Default",0,1]],[[1061,181,0,245,100,0,0,1,0.5020408034324646,0.5,0,0,[]],26,33,[],[],[0,"Default",0,1]],[[1061,74,0,245,100,0,0,1,0.5020408034324646,0.5,0,0,[]],26,35,[],[],[0,"Default",0,1]],[[576,285,0,366.4969177246094,366.4969177246094,0,0,1,0.5,0.5,0,0,[]],27,36,[],[[]],[1,"Default",0,1]],[[625,320,0,554.1467895507813,525.3408813476563,0,0,1,0.5197368264198303,0.5017668008804321,0,0,[]],25,32,[],[[]],[1,"Default",0,1]],[[953.46435546875,176.0383911132813,0,78.64425659179688,96.28408813476563,0,0,1,0.5046728849411011,0.5038167834281921,0,0,[]],30,48,[],[],[0,"Default",0,1]],[[952.6445922851563,69.86495208740234,0,88.87046051025391,87.09305572509766,0,0,1,0.5,0.5,0,0,[]],31,49,[],[],[0,"Default",0,1]],[[600.3480224609375,816.7940673828125,0,209.5281219482422,76.57205963134766,0,0,1,0.5016611218452454,0.5,0,0,[]],9,17,[],[],[0,"Default",0,1]],[[212,660,0,168,90,0,0,1,0.5,0.5,0,0,[]],56,18,[],[[]],["Text",0,"bold 36pt Arial","rgb(255,255,255)",1,1,4,0,0]],[[1072,184,0,179,79,0,0,1,0.5,0.5,0,0,[]],57,8,[],[[]],["Text",0,"bold 36pt Arial","rgb(0,0,0)",1,1,4,0,0]],[[1062,77,0,179,79,0,0,1,0.5,0.5,0,0,[]],58,16,[],[[]],["Text",0,"bold 36pt Arial","rgb(0,0,0)",1,1,4,0,0]],[[-2055.5,-971.5,0,120,120,0,0,1,0.5,0.5,0,0,[]],59,23,[],[[1,0.5,0.5,0.5,1],[]],[0,"Default",0,1]],[[-1856.5,-1044.5,0,120,120,0,0,1,0.5,0.5071428418159485,0,0,[]],60,39,[],[[1,0.5,0.5,0.5,1],[]],[0,"Default",0,1]]],[]],["popup",1,663433178020691,true,[255,255,255],true,0,0,1,false,false,0,0,0,[],[]]],[],[]]],[["Intro",[[1,"isSoundOn",0,0,false,false,442953855116895,false],[0,null,false,null,568259272870611,[[5,14,null,2,false,false,false,186379404697622,false,[[1,[2,"startPharse"]]]]],[[17,15,"MoveTo",768947180669655,false,[[0,[0,-1500]],[0,[0,0]]]],[18,15,"MoveTo",580304791974762,false,[[0,[0,1500]],[0,[0,0]]]]]],[0,null,false,null,458451448268050,[[-1,16,null,1,false,false,false,863122307739689,false]],[[38,17,null,434848314125825,false,[[3,1]]],[-1,18,null,620867513776422,false,[[5,[2,"Scenario"]],[3,0]]],[6,19,null,298699222456896,false,[[1,[2,"window['TDVTriger'] = this; tdv_sdk.init();"]]]],[20,20,"Pin",780961716242546,false,[[4,17],[3,0]]],[19,20,"Pin",403194687283405,false,[[4,18],[3,0]]],[-1,21,null,461445367495731,false,[[0,[0,4]]]],[-1,18,null,144805927854091,false,[[5,[2,"Scenario"]],[3,1]]],[38,17,null,494694103757318,false,[[3,0]]],[61,22,null,636748846344677,false,[[7,[20,6,23,false,null,[[2,"tdv_sdk.getInstructions()"]]]]]]]],[0,null,false,null,486426756367022,[[4,24,null,1,false,false,false,670161933885087,false]],[[14,25,null,843512926307037,false,[[2,["click",false]],[3,0],[0,[0,0]],[1,[2,""]]]]],[[0,null,false,null,244668239889283,[[-1,26,null,0,false,false,false,230398979810349,false,[[5,[2,"Scenario"]]]],[17,27,"MoveTo",0,false,true,false,675924193397283,false]],[[-1,18,null,276020627276302,false,[[5,[2,"Scenario"]],[3,0]]],[5,28,null,226604710621482,false,[[1,[2,"startPharse"]],[13]]]]]]],[0,null,false,null,276975554797051,[[17,29,"MoveTo",1,false,false,false,748565159715845,false]],[[16,30,"EaseTween",953869544948119,false]]],[0,null,false,null,613766865043707,[[16,31,"EaseTween",1,false,false,false,369940328015561,false]],[[-1,32,null,706579825763397,false,[[6,"Game"]]]]],[0,null,false,null,900280004141882,[[37,33,null,1,false,false,false,544328831737618,false]],[]]]],["Game",[[1,"blankCount",0,2,false,false,560803719409427,false],[1,"posX",0,0,false,false,840115760333849,false],[1,"checkerBaseY",0,0,false,false,929965046235249,false],[1,"posY",0,0,false,false,787851447363292,false],[1,"count",0,0,false,false,546518550564693,false],[1,"result",0,0,false,false,763635704941594,false],[1,"userSentence",1,"",false,false,575011151170447,false],[1,"wordsPlaced",0,0,false,false,155057269422608,false],[1,"userStr",1,"",false,false,132114629738765,false],[1,"isSelect",0,0,false,false,164948275365920,false],[1,"countCorrect",0,0,false,false,342246246742621,false],[1,"numQuestions",0,0,false,false,778150987044228,false],[1,"select1X",0,0,false,false,368980477333977,false],[1,"select1Y",0,0,false,false,608675646258236,false],[1,"select2X",0,0,false,false,733555584531399,false],[1,"select2Y",0,0,false,false,392543618185671,false],[1,"wordLength",0,0,false,false,399659242084404,false],[1,"gameState",1,"",false,false,106299408518362,false],[1,"score",0,0,false,false,185297949758731,false],[1,"bonus",0,0,false,false,844277613114017,false],[1,"total",0,0,false,false,324044981108861,false],[1,"timer",0,0,false,false,754110356780788,false],[0,null,false,null,138976088495164,[[3,29,"MoveTo",1,false,false,false,626174270477318,false]],[[-1,34,null,942528174312563,false,[[11,"select1X"],[7,[0,0]]]],[-1,34,null,556934151625802,false,[[11,"select1Y"],[7,[0,0]]]],[-1,34,null,222264107550541,false,[[11,"select2X"],[7,[0,0]]]],[-1,34,null,237363697005553,false,[[11,"select2Y"],[7,[0,0]]]],[-1,34,null,923931788762695,false,[[11,"isSelect"],[7,[0,0]]]],[-1,34,null,404560897934788,false,[[11,"gameState"],[7,[2,"playing"]]]],[3,35,null,754176374676061,false,[[10,0],[3,0]]],[3,36,null,459269065613438,false,[[10,3],[7,[0,0]]]],[3,37,null,126888082310446,false,[[0,[0,0]]]]]],[0,null,false,null,549205817072564,[[-1,16,null,1,false,false,false,597870668036321,false]],[[6,19,null,208416657380260,false,[[1,[2,"tdv_sdk.init()"]]]],[-1,18,null,676243385464497,false,[[5,[2,"popup"]],[3,0]]],[58,22,null,853553313213239,false,[[7,[23,"score"]]]],[57,22,null,962329655518548,false,[[7,[23,"timer"]]]],[-1,34,null,743312706294712,false,[[11,"gameState"],[7,[2,"playing"]]]],[5,28,null,971892219606647,false,[[1,[2,"loadQuestion"]],[13]]]]],[0,null,false,null,902035289977245,[[5,14,null,2,false,false,false,574674860513630,false,[[1,[2,"loadQuestion"]]]]],[[3,38,null,887835609193466,false],[8,38,null,300546270054345,false],[56,39,null,360452655746176,false],[6,19,null,554913326892535,false,[[1,[2,"tdv_sdk.resetPlacedWords()"]]]],[6,19,null,677280751778349,false,[[1,[2,"tdv_sdk.loadQuestions();"]]]],[-1,34,null,798686908172641,false,[[11,"gameState"],[7,[2,"playing"]]]],[-1,34,null,543327033698101,false,[[11,"wordsPlaced"],[7,[0,0]]]],[-1,34,null,542853961477086,false,[[11,"count"],[7,[20,6,23,false,null,[[2,"tdv_sdk.getWordsCount()"]]]]]]],[[0,null,false,null,477383250044862,[[-1,40,null,0,true,false,false,623370903418676,false,[[0,[20,6,23,false,null,[[2,"tdv_sdk.getBlankCount()"]]]]]]],[[-1,34,null,218198095960948,false,[[11,"posX"],[7,[20,6,23,false,null,[[10,[10,[2,"tdv_sdk.getCenteredPosX("],[19,41]],[2,")"]]]]]]],[-1,34,null,432443069999196,false,[[11,"posY"],[7,[20,6,23,false,null,[[10,[10,[2,"tdv_sdk.getCenteredPosY("],[19,41]],[2,")"]]]]]]],[-1,42,null,739353968447079,false,[[4,3],[5,[0,0]],[0,[23,"posX"]],[0,[23,"posY"]]]],[3,36,null,131719618020526,false,[[10,5],[7,[20,6,23,false,null,[[10,[10,[2,"tdv_sdk.missingWords["],[19,41]],[2,"]"]]]]]]],[3,36,null,555164331182892,false,[[10,6],[7,[0,-1]]]],[3,36,null,927582884892801,false,[[10,1],[7,[20,3,43,false,null]]]],[3,36,null,396050326510876,false,[[10,2],[7,[20,3,44,false,null]]]],[3,36,null,717468098169697,false,[[10,7],[7,[20,3,43,false,null]]]],[3,36,null,676689922486802,false,[[10,8],[7,[20,3,44,false,null]]]],[-1,42,null,621163829530712,false,[[4,56],[5,[0,0]],[0,[20,3,43,false,null]],[0,[4,[5,[20,3,44,false,null],[6,[0,2],[7,[20,3,45,false,null],[0,180]]]],[0,2]]]]],[56,20,"Pin",880375788473090,false,[[4,3],[3,0]]],[56,22,null,820191162188885,false,[[7,[20,6,23,false,null,[[10,[10,[2,"tdv_sdk.missingWords["],[19,41]],[2,"]"]]]]]]],[56,46,null,823092806237741,false,[[0,[20,6,23,false,null,[[10,[10,[2,"tdv_sdk.getFontSizeByIndex("],[19,41]],[2,", 36)"]]]]]]]]],[0,null,false,null,813488736654379,[[-1,40,null,0,true,false,false,130912375902097,false,[[0,[23,"count"]]]]],[[-1,34,null,743202531348701,false,[[11,"posX"],[7,[20,6,23,false,null,[[10,[10,[2,"tdv_sdk.getCenteredPosX("],[19,41]],[2,")"]]]]]]],[-1,34,null,247210682508678,false,[[11,"posY"],[7,[20,6,23,false,null,[[10,[10,[2,"tdv_sdk.getCheckerBaseY("],[19,41]],[2,")"]]]]]]],[-1,42,null,433551327079829,false,[[4,8],[5,[0,0]],[0,[23,"posX"]],[0,[23,"posY"]]]],[8,36,null,968732523172222,false,[[10,6],[7,[20,6,23,false,null,[[10,[10,[2,"tdv_sdk.getCorrectWordByIndex("],[19,41]],[2,")"]]]]]]],[8,36,null,106836256875377,false,[[10,4],[7,[20,6,23,false,null,[[10,[10,[2,"tdv_sdk.isPresetSlot("],[19,41]],[2,")"]]]]]]],[8,36,null,347124458457631,false,[[10,3],[7,[19,41]]]],[-1,42,null,295235485820444,false,[[4,56],[5,[0,0]],[0,[20,8,43,false,null]],[0,[4,[5,[20,8,44,false,null],[6,[0,2],[7,[20,8,45,false,null],[0,180]]]],[0,2]]]]],[56,20,"Pin",471071539364119,false,[[4,8],[3,0]]],[56,22,null,968420436962609,false,[[7,[20,6,23,false,null,[[10,[10,[2,"tdv_sdk.getWordByIndex("],[19,41]],[2,")"]]]]]]],[56,46,null,792928507425715,false,[[0,[20,6,23,false,null,[[10,[10,[2,"tdv_sdk.getFontSizeByIndex("],[19,41]],[2,", 36)"]]]]]]]],[[0,null,false,null,821773047032803,[[-1,47,null,0,false,false,false,778360583751397,false,[[7,[20,6,23,false,null,[[10,[10,[2,"tdv_sdk.isBlankIndex("],[19,41]],[2,")"]]]]],[8,0],[7,[0,1]]]]],[[8,36,null,976608014020883,false,[[10,5],[7,[0,1]]]],[8,36,null,504979964690159,false,[[10,0],[7,[2,""]]]],[8,37,null,627993368489757,false,[[0,[0,1]]]],[56,22,null,848383151260631,false,[[7,[2,""]]]]]],[0,null,false,null,899485495625941,[[-1,48,null,0,false,false,false,316429817545316,false],[8,49,null,0,false,false,false,262001114515685,false,[[10,4],[8,0],[7,[0,1]]]]],[[8,36,null,300609304650323,false,[[10,5],[7,[0,0]]]],[8,36,null,809891674909458,false,[[10,0],[7,[20,6,23,false,null,[[10,[10,[2,"tdv_sdk.getCorrectWordByIndex("],[19,41]],[2,")"]]]]]]],[56,22,null,952552231030407,false,[[7,[21,8,true,null,0]]]]]]]]]],[0,null,false,null,697646448924215,[[5,14,null,2,false,false,false,683656363419384,false,[[1,[2,"nextQuestion"]]]]],[[6,19,null,433354874189416,false,[[1,[2,"tdv_sdk.nextQuestion();"]]]],[5,28,null,840290663693184,false,[[1,[2,"loadQuestion"]],[13]]]]],[0,null,false,null,907166660008906,[[5,14,null,2,false,false,false,450652227133174,false,[[1,[2,"next"]]]]],[],[[0,null,false,null,369983601907982,[[-1,26,null,0,false,false,false,532208600232442,false,[[5,[2,"popup"]]]]],[[-1,18,null,605988914695713,false,[[5,[2,"popup"]],[3,0]]]],[[0,null,false,null,611507693831507,[[-1,47,null,0,false,false,false,235292780302559,false,[[7,[20,6,23,false,null,[[2,"tdv_sdk.getCurrentNumber()"]]]],[8,5],[7,[20,6,23,false,null,[[2,"tdv_sdk.getTotalQuestions()"]]]]]]],[[6,19,null,670214247964547,false,[[1,[2,"tdv_sdk.result();"]]]],[-1,21,null,947787251251962,false,[[0,[0,1]]]],[-1,32,null,888716147069562,false,[[6,"Result"]]]]],[0,null,false,null,786993133130190,[[-1,48,null,0,false,false,false,387829253456711,false]],[[-1,34,null,665422350260877,false,[[11,"wordsPlaced"],[7,[0,0]]]],[-1,34,null,482914604361064,false,[[11,"userSentence"],[7,[2,""]]]],[6,19,null,200295095054716,false,[[1,[2,"tdv_sdk.nextQuestion();"]]]],[5,28,null,736937932703758,false,[[1,[2,"loadQuestion"]],[13]]]]]]]]],[0,null,false,null,885232395664091,[[3,50,"DragDrop",1,false,false,false,462077248880784,false]],[[14,25,null,400234397175915,false,[[2,["click",false]],[3,0],[0,[0,0]],[1,[2,""]]]],[3,51,null,397403794429243,false]],[[0,null,false,null,715788682150145,[[-1,47,null,0,false,false,false,975555513158536,false,[[7,[21,3,false,null,6]],[8,5],[7,[0,0]]]]],[[6,19,null,909569432999024,false,[[1,[10,[10,[2,"tdv_sdk.clearLetterAtSlot("],[21,3,false,null,6]],[2,")"]]]]],[3,36,null,363961653226411,false,[[10,6],[7,[0,-1]]]],[3,35,null,904620901742824,false,[[10,0],[3,0]]]]],[0,null,false,null,535992857419921,[[3,52,null,0,false,false,false,177353221158730,false,[[4,56]]]],[[56,53,null,334953306997069,false]]]]],[1,"placeResult",0,0,false,false,150551051042293,false],[0,null,false,null,876456068332522,[[3,54,"DragDrop",1,false,false,false,792974910922911,false]],[],[[0,null,false,null,962248118287846,[[3,52,null,0,false,false,false,124677826324657,false,[[4,8]]],[3,55,null,0,false,true,false,213672349331262,false,[[10,0]]],[8,49,null,0,false,false,false,852890087723952,false,[[10,5],[8,0],[7,[0,1]]]]],[[-1,34,null,325604451019262,false,[[11,"placeResult"],[7,[0,0]]]],[-1,34,null,906166679679094,false,[[11,"placeResult"],[7,[20,6,23,false,null,[[10,[10,[10,[10,[2,"tdv_sdk.setWordAtSlot('"],[21,3,true,null,5]],[2,"', "]],[21,8,false,null,3]],[2,")"]]]]]]]],[[0,null,false,null,512507223560049,[[-1,47,null,0,false,false,false,175458247629307,false,[[7,[23,"placeResult"]],[8,0],[7,[0,1]]]]],[[6,19,null,705465375236567,false,[[1,[10,[10,[10,[10,[2,"tdv_sdk.logPlacedWord('"],[21,3,true,null,5]],[2,"', "]],[23,"wordsPlaced"]],[2,")"]]]]],[3,56,null,464777312492432,false,[[0,[20,8,43,false,null]],[0,[20,8,44,false,null]]]],[8,35,null,931590115213927,false,[[10,2],[3,1]]],[8,36,null,756435568949718,false,[[10,0],[7,[21,3,true,null,5]]]],[3,35,null,654690834203345,false,[[10,0],[3,1]]],[3,36,null,191216822223520,false,[[10,6],[7,[21,8,false,null,3]]]]]],[0,null,false,null,355486164429369,[[-1,48,null,0,false,false,false,557592477148098,false]],[[3,57,"MoveTo",585878831288169,false,[[0,[21,3,false,null,7]],[0,[21,3,false,null,8]]]],[3,35,null,151862272533632,false,[[10,0],[3,0]]]]]]],[0,null,false,null,480243149569390,[[-1,48,null,0,false,false,false,406723678071445,false]],[[3,57,"MoveTo",991509780314297,false,[[0,[21,3,false,null,7]],[0,[21,3,false,null,8]]]],[3,35,null,618455789425416,false,[[10,0],[3,0]]]]]]],[0,null,false,null,675857356740891,[[-1,58,null,0,false,false,false,370244224606184,false,[[0,[1,1]]]],[-1,59,null,0,false,false,false,814249873798323,false,[[11,"gameState"],[8,0],[7,[2,"playing"]]]]],[[-1,34,null,852486726740550,false,[[11,"timer"],[7,[20,6,23,false,null,[[2,"tdv_sdk.getRemainingTime()"]]]]]],[57,22,null,219368848871802,false,[[7,[23,"timer"]]]]],[[0,null,false,null,685358610852170,[[-1,59,null,0,false,false,false,693623216783758,false,[[11,"timer"],[8,3],[7,[0,0]]]]],[[6,19,null,247938732318052,false,[[1,[2,"tdv_sdk.forceFinishGame();"]]]],[-1,32,null,985337743414200,false,[[6,"Result"]]]]]]],[0,null,false,null,236846276546805,[[-1,60,null,0,false,false,false,156545375284247,false]],[[58,22,null,209693118582684,false,[[7,[20,6,23,false,null,[[2,"tdv_sdk.getCurrentScore()"]]]]]]]],[0,null,false,null,734897435823712,[[-1,60,null,0,false,false,false,560653658280359,false]],[],[[0,null,false,null,120933597520858,[[-1,47,null,0,false,false,false,752008358566402,false,[[7,[20,6,23,false,null,[[2,"tdv_sdk.canSubmitAnswer()"]]]],[8,0],[7,[0,1]]]]],[[9,17,null,218187814697551,false,[[3,1]]]]],[0,null,false,null,176434330825700,[[-1,48,null,0,false,false,false,868402124729995,false]],[[9,17,null,319260197635056,false,[[3,0]]]]]]],[0,null,false,null,198124435181627,[[4,61,null,1,false,false,false,968471510222435,false,[[4,9]]],[9,62,null,0,false,false,false,449456391350287,false]],[[-1,34,null,896282422945077,false,[[11,"result"],[7,[20,6,23,false,null,[[2,"tdv_sdk.submitAnswer()"]]]]]],[-1,18,null,487885391250917,false,[[5,[2,"popup"]],[3,1]]]],[[0,null,false,null,699734095897954,[],[],[[0,null,false,null,471424543889095,[[-1,59,null,0,false,false,false,558863681475477,false,[[11,"result"],[8,0],[7,[0,1]]]]],[[14,25,null,198862128495052,false,[[2,["correct",false]],[3,0],[0,[0,0]],[1,[2,""]]]],[-1,42,null,869008771903979,false,[[4,60],[5,[2,"Layer 0"]],[0,[20,9,43,false,null]],[0,[20,9,44,false,null]]]]]],[0,null,false,null,206534046243496,[[-1,59,null,0,false,false,false,564128024109930,false,[[11,"result"],[8,0],[7,[0,0]]]]],[[14,25,null,751178453895606,false,[[2,["fail",false]],[3,0],[0,[0,0]],[1,[2,""]]]],[-1,42,null,832971966522327,false,[[4,59],[5,[2,"Layer 0"]],[0,[20,9,43,false,null]],[0,[20,9,44,false,null]]]]]],[0,null,false,null,425803615709517,[[-1,63,null,0,false,false,false,264157804494786,false]],[[-1,21,null,230763842681626,false,[[0,[0,1]]]],[5,28,null,741482838148727,false,[[1,[2,"next"]],[13]]]]]]]]]]],["Result",[[0,null,false,null,869402415166568,[[-1,16,null,1,false,false,false,525095549732418,false]],[[6,19,null,607251342449872,false,[[1,[2,"tdv_sdk.leaderboard();"]]]],[-1,18,null,464292960825456,false,[[5,[2,"Leaderboard"]],[3,0]]],[39,64,null,626136405714026,false,[[7,[20,6,23,false,null,[[2,"tdv_sdk.getCurrentScore()"]]]]]],[10,64,null,832434783984253,false,[[7,[23,"score"]]]],[36,64,null,100280010044226,false,[[7,[23,"bonus"]]]],[35,64,null,954973489793376,false,[[7,[4,[23,"score"],[23,"bonus"]]]]],[41,64,null,328225903739603,false,[[7,[20,6,23,false,null,[[2,"tdv_sdk.getCorrectResultText()"]]]]]],[46,20,"Pin",541594237905073,false,[[4,51],[3,0]]],[50,20,"Pin",259112178443995,false,[[4,51],[3,0]]],[55,20,"Pin",531229209226329,false,[[4,51],[3,0]]],[62,20,"Pin",571550677471805,false,[[4,0],[3,0]]],[35,20,"Pin",545514430496319,false,[[4,0],[3,0]]],[36,20,"Pin",903779220227118,false,[[4,0],[3,0]]],[39,20,"Pin",933605395369996,false,[[4,0],[3,0]]],[40,20,"Pin",956499497490872,false,[[4,0],[3,0]]],[41,20,"Pin",346043886613784,false,[[4,0],[3,0]]],[52,20,"Pin",961059484131023,false,[[4,0],[3,0]]],[48,20,"Pin",204339450853292,false,[[4,47],[3,0]]],[51,20,"Pin",870117364717772,false,[[4,47],[3,0]]],[0,65,"MoveTo",533701982256744,false,[[0,[20,0,43,false,null]],[0,[0,-2000]]]],[47,65,"MoveTo",334574782779332,false,[[0,[20,47,43,false,null]],[0,[0,59]]]],[0,57,"MoveTo",362670796183920,false,[[0,[20,0,43,false,null]],[0,[1,628.5]]]]]],[0,null,false,null,352675978077684,[[4,61,null,1,false,false,false,239184189029640,false,[[4,52]]]],[[0,65,"MoveTo",461509406941708,false,[[0,[20,0,43,false,null]],[0,[0,-2000]]]],[-1,18,null,434953604539080,false,[[5,[2,"Layer 0"]],[3,0]]],[-1,18,null,196867115977817,false,[[5,[2,"Leaderboard"]],[3,1]]],[5,28,null,652173892454005,false,[[1,[2,"OnLeaderboardLoaded"]],[13]]],[-1,21,null,506761265453078,false,[[0,[0,1]]]]]],[0,null,false,null,420309984489462,[[4,61,null,1,false,false,false,273581270866045,false,[[4,48]]],[48,62,null,0,false,false,false,447083647042554,false]],[[-1,18,null,562908582277625,false,[[5,[2,"Leaderboard"]],[3,0]]],[-1,18,null,892818016093398,false,[[5,[2,"Layer 0"]],[3,1]]],[47,65,"MoveTo",722620590374056,false,[[0,[20,47,43,false,null]],[0,[0,-2000]]]],[0,57,"MoveTo",453291380950075,false,[[0,[20,0,43,false,null]],[0,[1,628.5]]]]]],[0,null,false,null,110032191370888,[[5,14,null,2,false,false,false,947895471222842,false,[[1,[2,"OnLeaderboardLoaded"]]]]],[[46,22,null,341968802763333,false,[[7,[10,[2,"Hạng của bạn: "],[20,6,23,false,null,[[2,"tdv_sdk.getLbUserAttr('rank')"]]]]]]],[50,22,null,376706767941042,false,[[7,[20,6,23,false,null,[[2,"tdv_sdk.getLbUserAttr('score')"]]]]]],[55,22,null,542615012673879,false,[[7,[20,6,23,false,null,[[2,"tdv_sdk.getLbUserAttr('time_spent')"]]]]]]],[[0,null,false,null,470014039358122,[[-1,59,null,0,false,false,false,121139358136948,false,[[11,"isDoneLeaderBoard"],[8,0],[7,[0,0]]]]],[[43,39,null,242294023434745,false],[42,39,null,833806688438269,false],[49,38,null,436805153793148,false],[44,39,null,197024419602057,false],[53,38,null,828683313854133,false]]],[0,null,false,null,983947303706750,[[-1,48,null,0,false,false,false,957832558088220,false]],[]],[0,null,false,null,324796205380003,[[-1,66,null,0,true,false,false,981354505276881,false,[[1,[2,"i"]],[0,[0,0]],[0,[20,6,23,false,null,[[2,"tdv_sdk.getLbLength() - 1"]]]]]]],[],[[0,null,false,null,584350254279705,[[-1,59,null,0,false,false,false,670137131324563,false,[[11,"isDoneLeaderBoard"],[8,0],[7,[0,0]]]]],[[-1,42,null,986271973613063,false,[[4,49],[5,[2,"Leaderboard"]],[0,[0,600]],[0,[20,6,23,false,null,[[10,[10,[2,"tdv_sdk.getLbItemY("],[19,41,[[2,"i"]]]],[2,", -100, 90)"]]]]]]],[-1,42,null,174923284311791,false,[[4,43],[5,[2,"Leaderboard"]],[0,[5,[20,49,43,false,null],[0,30]]],[0,[20,49,44,false,null]]]],[-1,42,null,628147996645621,false,[[4,42],[5,[2,"Leaderboard"]],[0,[4,[20,49,43,false,null],[0,200]]],[0,[20,49,44,false,null]]]],[-1,42,null,204218853106387,false,[[4,44],[5,[2,"Leaderboard"]],[0,[4,[20,49,43,false,null],[0,300]]],[0,[20,49,44,false,null]]]],[-1,42,null,548558623684350,false,[[4,53],[5,[2,"Leaderboard"]],[0,[5,[20,49,43,false,null],[0,300]]],[0,[5,[20,49,44,false,null],[0,5]]]]],[49,37,null,955332608430949,false,[[0,[19,41]]]],[53,37,null,134406708223083,false,[[0,[19,41]]]],[43,22,null,974108238231062,false,[[7,[20,6,23,false,null,[[10,[10,[2,"tdv_sdk.getLbAttr("],[19,41,[[2,"i"]]]],[2,", 'name')"]]]]]]],[42,22,null,402225908104152,false,[[7,[20,6,23,false,null,[[10,[10,[2,"tdv_sdk.getLbAttr("],[19,41,[[2,"i"]]]],[2,", 'score')"]]]]]]],[44,22,null,107596841223307,false,[[7,[20,6,23,false,null,[[10,[10,[2,"tdv_sdk.getLbAttr("],[19,41,[[2,"i"]]]],[2,", 'time_spent')"]]]]]]],[43,20,"Pin",762972739433523,false,[[4,47],[3,0]]],[42,20,"Pin",870232225771102,false,[[4,47],[3,0]]],[49,20,"Pin",777165397833028,false,[[4,47],[3,0]]],[44,20,"Pin",494025193779395,false,[[4,49],[3,0]]],[53,20,"Pin",926613930167230,false,[[4,49],[3,0]]]]],[0,null,false,null,496761973443300,[[-1,48,null,0,false,false,false,668026321288014,false]],[]]]],[0,null,false,null,452052322627635,[[-1,63,null,0,false,false,false,160521251751631,false]],[[47,57,"MoveTo",635784877856849,false,[[0,[20,47,43,false,null]],[0,[0,529]]]],[-1,34,null,641359852040355,false,[[11,"isDoneLeaderBoard"],[7,[0,1]]]]]]]],[1,"isDoneLeaderBoard",0,0,false,false,168399199294750,false]]]],[["bg.m4a",658130],["bg.ogg",594740],["click.m4a",2444],["click.ogg",5621],["correct.m4a",10198],["correct.ogg",12421],["fail.m4a",29104],["fail.ogg",24343]],"media/",false,1200,1200,3,true,true,true,"1.0.0.0",true,false,3,0,69,false,true,1,true,"G102-sequence",0,[]]} \ No newline at end of file diff --git a/G102-sequence/images/answers-sheet0.png b/G102-sequence/images/answers-sheet0.png deleted file mode 100644 index b31522b..0000000 Binary files a/G102-sequence/images/answers-sheet0.png and /dev/null differ diff --git a/G102-sequence/images/ao_vang_quan_xanh-sheet0.png b/G102-sequence/images/ao_vang_quan_xanh-sheet0.png deleted file mode 100644 index ccba0a6..0000000 Binary files a/G102-sequence/images/ao_vang_quan_xanh-sheet0.png and /dev/null differ diff --git a/G102-sequence/images/asset3-sheet0.png b/G102-sequence/images/asset3-sheet0.png deleted file mode 100644 index 88f772f..0000000 Binary files a/G102-sequence/images/asset3-sheet0.png and /dev/null differ diff --git a/G102-sequence/images/asset3-sheet1.png b/G102-sequence/images/asset3-sheet1.png deleted file mode 100644 index faccc73..0000000 Binary files a/G102-sequence/images/asset3-sheet1.png and /dev/null differ diff --git a/G102-sequence/images/avatar-sheet0.png b/G102-sequence/images/avatar-sheet0.png deleted file mode 100644 index b6a5dda..0000000 Binary files a/G102-sequence/images/avatar-sheet0.png and /dev/null differ diff --git a/G102-sequence/images/btn_next-sheet0.png b/G102-sequence/images/btn_next-sheet0.png deleted file mode 100644 index feee855..0000000 Binary files a/G102-sequence/images/btn_next-sheet0.png and /dev/null differ diff --git a/G102-sequence/images/btn_play-sheet0.png b/G102-sequence/images/btn_play-sheet0.png deleted file mode 100644 index 025297c..0000000 Binary files a/G102-sequence/images/btn_play-sheet0.png and /dev/null differ diff --git a/G102-sequence/images/btn_submit-sheet0.png b/G102-sequence/images/btn_submit-sheet0.png deleted file mode 100644 index f0397aa..0000000 Binary files a/G102-sequence/images/btn_submit-sheet0.png and /dev/null differ diff --git a/G102-sequence/images/btn_submit2-sheet0.png b/G102-sequence/images/btn_submit2-sheet0.png deleted file mode 100644 index 5a866fa..0000000 Binary files a/G102-sequence/images/btn_submit2-sheet0.png and /dev/null differ diff --git a/G102-sequence/images/checker_frame-sheet0.png b/G102-sequence/images/checker_frame-sheet0.png deleted file mode 100644 index 2311d13..0000000 Binary files a/G102-sequence/images/checker_frame-sheet0.png and /dev/null differ diff --git a/G102-sequence/images/coin-sheet0.png b/G102-sequence/images/coin-sheet0.png deleted file mode 100644 index 8aa8618..0000000 Binary files a/G102-sequence/images/coin-sheet0.png and /dev/null differ diff --git a/G102-sequence/images/dong_ho-sheet0.png b/G102-sequence/images/dong_ho-sheet0.png deleted file mode 100644 index 99b8317..0000000 Binary files a/G102-sequence/images/dong_ho-sheet0.png and /dev/null differ diff --git a/G102-sequence/images/frame_door-sheet0.png b/G102-sequence/images/frame_door-sheet0.png deleted file mode 100644 index 35736b0..0000000 Binary files a/G102-sequence/images/frame_door-sheet0.png and /dev/null differ diff --git a/G102-sequence/images/frame_door_left-sheet0.png b/G102-sequence/images/frame_door_left-sheet0.png deleted file mode 100644 index c84d188..0000000 Binary files a/G102-sequence/images/frame_door_left-sheet0.png and /dev/null differ diff --git a/G102-sequence/images/frame_door_right-sheet0.png b/G102-sequence/images/frame_door_right-sheet0.png deleted file mode 100644 index bb12eec..0000000 Binary files a/G102-sequence/images/frame_door_right-sheet0.png and /dev/null differ diff --git a/G102-sequence/images/frame_score-sheet0.png b/G102-sequence/images/frame_score-sheet0.png deleted file mode 100644 index 9064d47..0000000 Binary files a/G102-sequence/images/frame_score-sheet0.png and /dev/null differ diff --git a/G102-sequence/images/hand_left-sheet0.png b/G102-sequence/images/hand_left-sheet0.png deleted file mode 100644 index c9606b7..0000000 Binary files a/G102-sequence/images/hand_left-sheet0.png and /dev/null differ diff --git a/G102-sequence/images/hand_right-sheet0.png b/G102-sequence/images/hand_right-sheet0.png deleted file mode 100644 index 24c4ec8..0000000 Binary files a/G102-sequence/images/hand_right-sheet0.png and /dev/null differ diff --git a/G102-sequence/images/human-sheet0.png b/G102-sequence/images/human-sheet0.png deleted file mode 100644 index 492d121..0000000 Binary files a/G102-sequence/images/human-sheet0.png and /dev/null differ diff --git a/G102-sequence/images/khung_diem-sheet0.png b/G102-sequence/images/khung_diem-sheet0.png deleted file mode 100644 index f7678f9..0000000 Binary files a/G102-sequence/images/khung_diem-sheet0.png and /dev/null differ diff --git a/G102-sequence/images/khung_thoai-sheet0.png b/G102-sequence/images/khung_thoai-sheet0.png deleted file mode 100644 index 5bd7fc6..0000000 Binary files a/G102-sequence/images/khung_thoai-sheet0.png and /dev/null differ diff --git a/G102-sequence/images/khung_thoai2-sheet0.png b/G102-sequence/images/khung_thoai2-sheet0.png deleted file mode 100644 index f5b79dc..0000000 Binary files a/G102-sequence/images/khung_thoai2-sheet0.png and /dev/null differ diff --git a/G102-sequence/images/sena_btn_exit-sheet0.png b/G102-sequence/images/sena_btn_exit-sheet0.png deleted file mode 100644 index 4489a16..0000000 Binary files a/G102-sequence/images/sena_btn_exit-sheet0.png and /dev/null differ diff --git a/G102-sequence/images/sena_btn_leaderboard-sheet0.png b/G102-sequence/images/sena_btn_leaderboard-sheet0.png deleted file mode 100644 index d99c749..0000000 Binary files a/G102-sequence/images/sena_btn_leaderboard-sheet0.png and /dev/null differ diff --git a/G102-sequence/images/sena_btn_replay-sheet0.png b/G102-sequence/images/sena_btn_replay-sheet0.png deleted file mode 100644 index 2767a71..0000000 Binary files a/G102-sequence/images/sena_btn_replay-sheet0.png and /dev/null differ diff --git a/G102-sequence/images/sena_fx_correct_mark-sheet0.png b/G102-sequence/images/sena_fx_correct_mark-sheet0.png deleted file mode 100644 index acfca94..0000000 Binary files a/G102-sequence/images/sena_fx_correct_mark-sheet0.png and /dev/null differ diff --git a/G102-sequence/images/sena_fx_wrong_mark-sheet0.png b/G102-sequence/images/sena_fx_wrong_mark-sheet0.png deleted file mode 100644 index b6a9daa..0000000 Binary files a/G102-sequence/images/sena_fx_wrong_mark-sheet0.png and /dev/null differ diff --git a/G102-sequence/images/sena_title_leaderboard-sheet0.png b/G102-sequence/images/sena_title_leaderboard-sheet0.png deleted file mode 100644 index 537448f..0000000 Binary files a/G102-sequence/images/sena_title_leaderboard-sheet0.png and /dev/null differ diff --git a/G102-sequence/images/sena_ui_frame_intro-sheet0.png b/G102-sequence/images/sena_ui_frame_intro-sheet0.png deleted file mode 100644 index d2c74de..0000000 Binary files a/G102-sequence/images/sena_ui_frame_intro-sheet0.png and /dev/null differ diff --git a/G102-sequence/images/sena_ui_frame_leaderboard-sheet0.png b/G102-sequence/images/sena_ui_frame_leaderboard-sheet0.png deleted file mode 100644 index 69f2207..0000000 Binary files a/G102-sequence/images/sena_ui_frame_leaderboard-sheet0.png and /dev/null differ diff --git a/G102-sequence/images/sena_ui_frame_result-sheet0.png b/G102-sequence/images/sena_ui_frame_result-sheet0.png deleted file mode 100644 index 1cde514..0000000 Binary files a/G102-sequence/images/sena_ui_frame_result-sheet0.png and /dev/null differ diff --git a/G102-sequence/images/sena_ui_item_bg-sheet0.png b/G102-sequence/images/sena_ui_item_bg-sheet0.png deleted file mode 100644 index dfed4df..0000000 Binary files a/G102-sequence/images/sena_ui_item_bg-sheet0.png and /dev/null differ diff --git a/G102-sequence/images/sena_ui_item_bg_user_rank-sheet0.png b/G102-sequence/images/sena_ui_item_bg_user_rank-sheet0.png deleted file mode 100644 index de3aaa4..0000000 Binary files a/G102-sequence/images/sena_ui_item_bg_user_rank-sheet0.png and /dev/null differ diff --git a/G102-sequence/images/sena_ui_number_rank-sheet0.png b/G102-sequence/images/sena_ui_number_rank-sheet0.png deleted file mode 100644 index 8f2019a..0000000 Binary files a/G102-sequence/images/sena_ui_number_rank-sheet0.png and /dev/null differ diff --git a/G102-sequence/images/sena_ui_number_rank-sheet1.png b/G102-sequence/images/sena_ui_number_rank-sheet1.png deleted file mode 100644 index ff6fcec..0000000 Binary files a/G102-sequence/images/sena_ui_number_rank-sheet1.png and /dev/null differ diff --git a/G102-sequence/images/sena_ui_number_rank-sheet2.png b/G102-sequence/images/sena_ui_number_rank-sheet2.png deleted file mode 100644 index 2e9e71b..0000000 Binary files a/G102-sequence/images/sena_ui_number_rank-sheet2.png and /dev/null differ diff --git a/G102-sequence/images/sprite-sheet0.png b/G102-sequence/images/sprite-sheet0.png deleted file mode 100644 index 4f5f653..0000000 Binary files a/G102-sequence/images/sprite-sheet0.png and /dev/null differ diff --git a/G102-sequence/images/star_-sheet0.png b/G102-sequence/images/star_-sheet0.png deleted file mode 100644 index 8748a3d..0000000 Binary files a/G102-sequence/images/star_-sheet0.png and /dev/null differ diff --git a/G102-sequence/images/txt_answerss.png b/G102-sequence/images/txt_answerss.png deleted file mode 100644 index c4f063d..0000000 Binary files a/G102-sequence/images/txt_answerss.png and /dev/null differ diff --git a/G102-sequence/images/txt_instructions.png b/G102-sequence/images/txt_instructions.png deleted file mode 100644 index fefb49d..0000000 Binary files a/G102-sequence/images/txt_instructions.png and /dev/null differ diff --git a/G102-sequence/media/bg.m4a b/G102-sequence/media/bg.m4a deleted file mode 100644 index 5f816a1..0000000 Binary files a/G102-sequence/media/bg.m4a and /dev/null differ diff --git a/G102-sequence/media/bg.ogg b/G102-sequence/media/bg.ogg deleted file mode 100644 index ff861a0..0000000 Binary files a/G102-sequence/media/bg.ogg and /dev/null differ diff --git a/G102-sequence/media/click.m4a b/G102-sequence/media/click.m4a deleted file mode 100644 index 8874ebe..0000000 Binary files a/G102-sequence/media/click.m4a and /dev/null differ diff --git a/G102-sequence/media/click.ogg b/G102-sequence/media/click.ogg deleted file mode 100644 index 715aabf..0000000 Binary files a/G102-sequence/media/click.ogg and /dev/null differ diff --git a/G102-sequence/media/correct.m4a b/G102-sequence/media/correct.m4a deleted file mode 100644 index e796026..0000000 Binary files a/G102-sequence/media/correct.m4a and /dev/null differ diff --git a/G102-sequence/media/correct.ogg b/G102-sequence/media/correct.ogg deleted file mode 100644 index 0d86e4f..0000000 Binary files a/G102-sequence/media/correct.ogg and /dev/null differ diff --git a/G102-sequence/media/fail.m4a b/G102-sequence/media/fail.m4a deleted file mode 100644 index eb8f31f..0000000 Binary files a/G102-sequence/media/fail.m4a and /dev/null differ diff --git a/G102-sequence/media/fail.ogg b/G102-sequence/media/fail.ogg deleted file mode 100644 index 2a4f445..0000000 Binary files a/G102-sequence/media/fail.ogg and /dev/null differ diff --git a/G102-sequence/offline.js b/G102-sequence/offline.js deleted file mode 100644 index 22b816a..0000000 --- a/G102-sequence/offline.js +++ /dev/null @@ -1,67 +0,0 @@ -{ - "version": 1769066087, - "fileList": [ - "data.js", - "c2runtime.js", - "jquery-3.4.1.min.js", - "offlineClient.js", - "images/sena_ui_frame_result-sheet0.png", - "images/sena_btn_replay-sheet0.png", - "images/asset3-sheet0.png", - "images/asset3-sheet1.png", - "images/answers-sheet0.png", - "images/txt_answerss.png", - "images/checker_frame-sheet0.png", - "images/btn_submit-sheet0.png", - "images/txt_instructions.png", - "images/btn_submit2-sheet0.png", - "images/btn_next-sheet0.png", - "images/btn_play-sheet0.png", - "images/btn_play-sheet1.png", - "images/bg-sheet0.png", - "images/frame_door-sheet0.png", - "images/frame_door_left-sheet0.png", - "images/frame_door_right-sheet0.png", - "images/hand_right-sheet0.png", - "images/hand_left-sheet0.png", - "images/ao_vang_quan_xanh-sheet0.png", - "images/sprite-sheet0.png", - "images/khung_thoai-sheet0.png", - "images/human-sheet0.png", - "images/khung_thoai2-sheet0.png", - "images/khung_diem-sheet0.png", - "images/avatar-sheet0.png", - "images/star_-sheet0.png", - "images/frame_score-sheet0.png", - "images/dong_ho-sheet0.png", - "images/coin-sheet0.png", - "images/sena_ui_frame_intro-sheet0.png", - "images/sena_title_leaderboard-sheet0.png", - "images/sena_ui_frame_leaderboard-sheet0.png", - "images/sena_btn_exit-sheet0.png", - "images/sena_ui_item_bg-sheet0.png", - "images/sena_ui_item_bg_user_rank-sheet0.png", - "images/sena_btn_leaderboard-sheet0.png", - "images/sena_ui_number_rank-sheet0.png", - "images/sena_ui_number_rank-sheet1.png", - "images/sena_ui_number_rank-sheet2.png", - "images/sena_fx_wrong_mark-sheet0.png", - "images/sena_fx_correct_mark-sheet0.png", - "media/bg.m4a", - "media/bg.ogg", - "media/click.m4a", - "media/click.ogg", - "media/correct.m4a", - "media/correct.ogg", - "media/fail.m4a", - "media/fail.ogg", - "icon-16.png", - "icon-32.png", - "icon-114.png", - "icon-128.png", - "icon-256.png", - "loading-logo.png", - "tdv_sdk.js", - "bg.mp4" - ] -} \ No newline at end of file diff --git a/G102-sequence/tdv_sdk.js b/G102-sequence/tdv_sdk.js deleted file mode 100644 index 33400bd..0000000 --- a/G102-sequence/tdv_sdk.js +++ /dev/null @@ -1,1121 +0,0 @@ -var tdv_sdk = { - // --- KHO DỮ LIỆU NỘI BỘ --- - list: [], - currentQuestion: null, - level: 0, - totalQuestions: 0, - userResults: [], - gameID: null, - userId: null, - leaderboardData: null, - gameStartTime: null, - endTime: null, - instructions: "Sắp xếp các từ thành câu đúng!", - serverDataLoaded: false, - - // ===== GAME MODE ===== - gameMode: "fill_blank", // "full_order" | "fill_blank" - missingIndices: [], // lưu index các slot bị thiếu - blankIndexes: [], // danh sách index bị trống - missingWords: [], - - blankCount: 1, // số ô trống (server control) - - currentWords: [], // Mảng các từ đã shuffle - correctSentence: "", // Câu đúng (gốc) - correctWords: [], // Mảng các từ đúng (theo thứ tự) - listPosX: [], - newWidth: 150, - maxWWidth: 1200, - margin: 40, - - // --- DỮ LIỆU MẶC ĐỊNH (FALLBACK) --- - defaultData: { - game_id: "SQ_SENTENCE_001", - user_id: "guest_user", - blank_count: 2, - end_time_iso: null, - instructions: "Arrange the words to form correct sentences!", - data: [ - { - "sentence": "There are some toys in the box.", - "parts": [ - "There", - "are", - "some", - "toys", - "in", - "the", - "box." - ], - "is_scrambled": true, - "original_quote": "1. some toys are There in the box.", - "id": "SE-1768646900503-0", - "game_type": "sequence" - }, - { - "sentence": "She is eating a cake.", - "parts": [ - "She", - "is", - "eating", - "a", - "cake." - ], - "is_scrambled": true, - "original_quote": "2. is She a cake . eating", - "id": "SE-1768646900503-1", - "game_type": "sequence" - }, - { - "sentence": "May I visit the gift shop?", - "parts": [ - "May", - "I", - "visit", - "the", - "gift", - "shop?" - ], - "is_scrambled": true, - "original_quote": "3. visit May I gift shop ? the", - "id": "SE-1768646900503-2", - "game_type": "sequence" - } - ] - }, - - // Leaderboard mặc định - defaultLeaderboard: { - top_players: [ - { rank: 1, name: "Player 1", score: 10, time_spent: 45 }, - { rank: 2, name: "You", score: 9, time_spent: 52 }, - { rank: 3, name: "Player 3", score: 8, time_spent: 60 } - ], - user_rank: { rank: "2", name: "You", score: 9, time_spent: 52 } - }, - - themeSettings: { - current_bg: "bg", - bg_list: ["bg1", "bg2", "bg3", "bg4", "bg5", "bg6", "bg7", "bg8", "bg9", "bg10"] - }, - - // --- CÁC HÀM CALLBACK --- - onGameStart: function () { console.log("SDK: Sentence Game Started"); }, - onAnswerChecked: function (isCorrect, data) { console.log("SDK: Answer Checked", isCorrect); }, - onGameFinished: function (finalData) { console.log("SDK: Game Finished", finalData,data); }, - onLeaderboardLoaded: function (data) { console.log("SDK: Leaderboard Loaded",data); }, - - // --- KHỞI TẠO & LOAD DỮ LIỆU --- - init: function () { - var self = this; - const urlParams = new URLSearchParams(window.location.search); - const bgParam = urlParams.get('bg'); - if (bgParam) { - this.themeSettings.current_bg = bgParam.startsWith('bg') ? bgParam : "bg" + bgParam; - } - const id = urlParams.get('game_id') || this.gameID; - console.log("🔌 SDK: Sentence Game Initialized. Waiting for data..."); - window.parent.postMessage({ - type: "GAME_READY", - game_id: id, - available_bgs: this.themeSettings.bg_list, - selected_bg: this.themeSettings.current_bg - }, "*"); - - if (urlParams.has('offline') || urlParams.has('demo')) { - console.log("🔧 SDK: Offline/Demo mode - Loading default data"); - this.loadDefaultData(); - } else { - setTimeout(function () { - if (!self.serverDataLoaded && self.list.length === 0) { - console.warn("⚠️ SDK: No server data after 3s - Loading default data"); - self.loadDefaultData(); - } - }, 3000); - } - }, - - loadDefaultData: function () { - if (this.list && this.list.length > 0) { - console.log("📦 SDK: Data already loaded, skipping default"); - return; - } - var now = new Date(); - var endTime = new Date(now.getTime() + (180 * 1000)); // 3 phút - var defaultJson = JSON.parse(JSON.stringify(this.defaultData)); - defaultJson.end_time_iso = endTime.toISOString(); - console.log("📦 SDK: Loading default data with", defaultJson.data.length, "sentences"); - this.load(defaultJson); - }, - - load: function (inputJson) { - if (!inputJson) return; - this.serverDataLoaded = true; - this.list = inputJson.data || inputJson.questions || []; - this.gameID = inputJson.game_id; - this.userId = inputJson.user_id; - this.totalQuestions = this.list.length; - this.blankCount = inputJson.blank_count || 1; - - - if (inputJson.end_time_iso) { - this.endTime = new Date(inputJson.end_time_iso); - } else { - let fallbackSeconds = inputJson.total_time || 180; - this.endTime = new Date(Date.now() + fallbackSeconds * 1000); - } - - if (inputJson.metadata && inputJson.metadata.description) { - this.instructions = inputJson.metadata.description; - } - - const completedData = inputJson.completed_question_ids || []; - this.userResults = []; - let resumeLevel = 0; - for (let i = 0; i < this.list.length; i++) { - const done = completedData.find(item => (item.id || item) === this.list[i].id); - if (done) { - this.userResults.push({ id: this.list[i].id, result: done.result !== undefined ? done.result : 0 }); - resumeLevel = i + 1; - } else { - resumeLevel = i; - break; - } - } - this.level = Math.min(resumeLevel, this.totalQuestions - 1); - this.gameStartTime = new Date(); - this.loadQuestions(); - this.onGameStart(); - if (window['TDVTriger']) window['TDVTriger'].runtime.trigger(cr.plugins_.TDVplugin.prototype.cnds.OnLoad, window['TDVTriger']); - }, - - // --- LOGIC THỜI GIAN --- - getRemainingTime: function () { - if (!this.endTime) return 0; - let diff = Math.floor((this.endTime - new Date()) / 1000); - return diff > 0 ? diff : 0; - }, - - getTimeSpent: function () { - if (!this.gameStartTime) return 0; - const now = new Date(); - return Math.floor((now - this.gameStartTime) / 1000); - }, - - formatTime: function (seconds) { - if (seconds === undefined || seconds === null) return "00:00"; - const mins = Math.floor(seconds / 60); - const secs = seconds % 60; - return String(mins).padStart(2, '0') + ":" + String(secs).padStart(2, '0'); - }, - - // ==================== LOGIC CHÍNH: LOAD CÂU HỎI ==================== - lastLoadedLevel: -1, - - loadQuestions: function () { - if (this.lastLoadedLevel === this.level && this.currentWords.length > 0) { - console.log("⏭️ Sentence", this.level + 1, "already loaded, skipping..."); - return; - } - - this.currentQuestion = this.list[this.level]; - if (this.currentQuestion) { - // Lấy câu đúng từ field "sentence" - this.correctSentence = String(this.currentQuestion.sentence || "").trim(); - - // PHƯƠNG THỨC 1: Nhận parts đã chia sẵn từ server - if (this.currentQuestion.parts && Array.isArray(this.currentQuestion.parts) && this.currentQuestion.parts.length > 0) { - // Server đã gửi sẵn parts (có thể đã shuffle hoặc chưa) - this.currentWords = [...this.currentQuestion.parts]; - - // Tách correctWords từ sentence để so sánh - this.correctWords = this.correctSentence.split(/\s+/).filter(w => w.length > 0); - - console.log("📦 Using server-provided parts:", this.currentWords); - } - // PHƯƠNG THỨC 2: Tự tách câu và shuffle (fallback) - else { - // TÁCH CÂU THÀNH CÁC TỪ (by space) - this.correctWords = this.correctSentence.split(/\s+/).filter(w => w.length > 0); - - // Shuffle các từ - this.currentWords = this.shuffleArray([...this.correctWords]); - - console.log("🔀 Auto-split and shuffled words"); - } - // ===== FILL BLANK MODE ===== - this.missingIndices = []; - - if (this.gameMode === "fill_blank") { - var total = this.correctWords.length; - - // random 1 slot bị thiếu - var missing = Math.floor(Math.random() * total); - this.missingIndices.push(missing); - - console.log("🕳️ Missing slot index:", missing); - } - // Tính width dựa trên số từ và độ dài từ - this.newWidth = this.calculateWordWidth(this.currentWords); - - // Tính vị trí X cho từng từ - this.listPosX = this.getObjectPositions(this.currentWords.length, this.newWidth, this.margin, this.maxWWidth); - - // Đánh dấu đã load level này - this.lastLoadedLevel = this.level; - - console.log("📝 Correct sentence:", this.correctSentence); - console.log("📝 Display words:", this.currentWords); - console.log("📝 Word count:", this.currentWords.length); - this.generateBlankIndexes(); - this.generateMissingWords(); - - } - }, - - // Tính width dựa trên số từ và độ dài từ dài nhất - calculateWordWidth: function (words) { - var count = words.length; - var maxLen = Math.max(...words.map(w => w.length)); - - // Base width theo độ dài từ - var baseWidth = Math.max(80, maxLen * 15 + 20); - - // Điều chỉnh theo số từ để vừa màn hình - if (count <= 3) return Math.min(200, baseWidth); - if (count <= 5) return Math.min(180, baseWidth); - if (count <= 7) return Math.min(150, baseWidth); - return Math.min(120, baseWidth); - }, - generateBlankIndexes: function () { - this.blankIndexes = []; - - var total = this.correctWords.length; - var need = Math.min(this.blankCount, total); - - var pool = []; - for (var i = 0; i < total; i++) { - pool.push(i); - } - - // shuffle pool - for (var i = pool.length - 1; i > 0; i--) { - var j = Math.floor(Math.random() * (i + 1)); - var tmp = pool[i]; - pool[i] = pool[j]; - pool[j] = tmp; - } - - // lấy need phần tử đầu - this.blankIndexes = pool.slice(0, need); - - console.log("🕳️ Blank indexes:", this.blankIndexes); - }, - generateMissingWords: function () { - this.missingWords = []; - for (var i = 0; i < this.blankIndexes.length; i++) { - var idx = this.blankIndexes[i]; - this.missingWords.push(this.correctWords[idx]); - } - // shuffle - this.shuffleArray(this.missingWords); - console.log("🧩 Missing words:", this.missingWords); - }, - - // ==================== TÍNH SCALE CHO TỪ ==================== - getWordScale: function () { - var wordCount = this.currentWords.length; - if (wordCount <= 3) return 1.2; - if (wordCount <= 4) return 1.1; - if (wordCount <= 5) return 1.0; - if (wordCount <= 6) return 0.9; - if (wordCount <= 7) return 0.85; - return 0.8; - }, - - getTextScale: function () { - return this.getWordScale(); - }, - - getFontSize: function (baseSize) { - var base = baseSize || 40; - return Math.round(base * this.getWordScale()); - }, - - // ==================== KIỂM TRA ĐÁP ÁN ==================== - play: function (userAnswer, isTimeout = false) { - if (!this.currentQuestion) return 0; - var isActuallyTimeout = (isTimeout === true || String(isTimeout) === "true"); - - if (this.userResults.some(r => r.id === this.currentQuestion.id)) { - return this.userResults.find(r => r.id === this.currentQuestion.id).result; - } - - let isCorrect = false; - let finalChoice = isActuallyTimeout ? "TIMEOUT" : String(userAnswer).trim(); - - if (!isActuallyTimeout) { - // So sánh câu user sắp xếp với câu đúng (case-insensitive) - let cleanCorrect = this.correctSentence.toLowerCase().replace(/\s+/g, ' ').trim(); - let cleanUser = finalChoice.toLowerCase().replace(/\s+/g, ' ').trim(); - isCorrect = (cleanUser === cleanCorrect); - } - - const report = { - question_id: this.currentQuestion.id, - result: isCorrect ? 1 : 0, - choice: finalChoice, - is_timeout: isActuallyTimeout - }; - - console.log("📤 Report Sent:", report); - this.userResults.push({ id: report.question_id, result: report.result }); - window.parent.postMessage({ type: "ANSWER_REPORT", data: report }, "*"); - return report.result; - }, - - // ==================== TRACKING TỪ THEO VỊ TRÍ SLOT ==================== - placedWords: [], // Mảng lưu từ theo vị trí slot [0, 1, 2, 3, ...] - canSubmit: 0, // 0 = chưa đủ từ, 1 = đủ từ có thể submit - - // Reset mảng placedWords khi bắt đầu câu hỏi mới - resetPlacedWords: function () { - var count = this.currentWords.length; - this.placedWords = new Array(count).fill(""); - this.canSubmit = 0; - console.log("🔄 Reset placedWords:", this.placedWords); - }, - - // Alias cho tương thích - resetPlacedLetters: function () { - return this.resetPlacedWords(); - }, - - // Kiểm tra slot có trống không - isSlotEmpty: function (slotIndex) { - if (slotIndex < 0 || slotIndex >= this.placedWords.length) { - return 0; - } - return this.placedWords[slotIndex] === "" ? 1 : 0; - }, - - // Đặt từ vào slot (vị trí từ 0) - // Trả về 1 = thành công, 0 = thất bại (slot đã có từ) - setWordAtSlot: function (word, slotIndex) { - if (slotIndex >= 0 && slotIndex < this.placedWords.length) { - if (this.placedWords[slotIndex] !== "") { - console.log("⚠️ Slot " + (slotIndex + 1) + " already has word '" + this.placedWords[slotIndex] + "'"); - return 0; - } - this.placedWords[slotIndex] = word; - console.log("📍 Word '" + word + "' placed at Slot " + (slotIndex + 1)); - this.updateSubmitState(); - return 1; - } - return 0; - }, - - // Alias cho tương thích với SQ Word - setLetterAtSlot: function (word, slotIndex) { - return this.setWordAtSlot(word, slotIndex); - }, - - // Xóa từ khỏi slot - clearWordAtSlot: function (slotIndex) { - if (slotIndex >= 0 && slotIndex < this.placedWords.length) { - this.placedWords[slotIndex] = ""; - console.log("🗑️ Cleared Slot " + (slotIndex + 1)); - this.updateSubmitState(); - } - }, - - // Alias cho tương thích - clearLetterAtSlot: function (slotIndex) { - return this.clearWordAtSlot(slotIndex); - }, - - // Cập nhật trạng thái Submit - updateSubmitState: function () { - var required = (this.gameMode === "fill_blank") - ? this.blankIndexes.length - : this.currentWords.length; - - var allPlaced = this.getPlacedCount() === required; - - var oldState = this.canSubmit; - this.canSubmit = allPlaced ? 1 : 0; - - if (this.canSubmit !== oldState) { - if (this.canSubmit === 1) { - console.log("✅ All words placed! Submit button should appear."); - } else { - console.log("⏳ Not all words placed. Submit hidden."); - } - } - }, - getMissingCount: function () { - return this.missingWords.length; - }, - getMissingWordByIndex: function (index) { - if (this.missingIndices.indexOf(index) === -1) return ""; - console.log("🧩 Missing words:", this.missingWords); - console.log("🧩 Missing words:", this.index); - return this.correctWords[index] || ""; - }, - isBlankIndex: function (index) { - return this.blankIndexes.indexOf(index) !== -1 ? 1 : 0; - }, - - getBlankCount: function () { - return this.blankIndexes.length; - }, - // Lấy câu đã ghép (nối các từ theo thứ tự slot) - getPlacedSentence: function () { - var result = []; - - for (var i = 0; i < this.correctWords.length; i++) { - // Nếu là blank slot → lấy từ user đặt - if (this.isBlankIndex(i)) { - result.push(this.placedWords[i] || ""); - } - // Nếu là preset slot → lấy từ đúng - else { - result.push(this.correctWords[i]); - } - } - - return result.join(" ").replace(/\s+/g, " ").trim(); - }, - // Alias - getPlacedWord: function () { - return this.getPlacedSentence(); - }, - - // Đếm số slot đã có từ - getPlacedCount: function () { - return this.placedWords.filter(w => w !== "").length; - }, - - // Kiểm tra đã đặt đủ từ chưa - isAllPlaced: function () { - return this.canSubmit; - }, - - canSubmitAnswer: function () { - return this.canSubmit; - }, - - // ==================== SUBMIT ĐÁP ÁN ==================== - submitAnswer: function () { - if (this.canSubmit !== 1) { - console.log("❌ Cannot submit - not all words placed!"); - return -1; - } - - var userSentence = this.getPlacedSentence(); - console.log("📝 SUBMIT:", userSentence, "vs", this.correctSentence); - return this.play(userSentence, false); - }, - - checkAnswer: function () { - return this.submitAnswer(); - }, - - logPlacedWord: function (wordValue, positionIndex) { - console.log(`📍 Word Placed: "${wordValue}" at Slot ${positionIndex + 1}`); - }, - - // Alias cho tương thích - logPlacedLetter: function (wordValue, positionIndex) { - return this.logPlacedWord(wordValue, positionIndex); - }, - // ===== FILL BLANK GETTERS ===== - isPresetSlot: function (index) { - if (this.gameMode !== "fill_blank") return 0; - return this.missingIndices.indexOf(index) === -1 ? 1 : 0; - }, - - isBlankSlot: function (index) { - if (this.gameMode !== "fill_blank") return 0; - return this.missingIndices.indexOf(index) !== -1 ? 1 : 0; - }, - - // --- CÁC HÀM GETTER & TIỆN ÍCH --- - getWordsCount: function () { return this.currentWords.length; }, - getLettersCount: function () { return this.currentWords.length; }, // Alias - - // Lấy từ theo index (đã shuffle) - getWordByIndex: function (i) { return this.currentWords[i] || ""; }, - getLetterByIndex: function (i) { return this.currentWords[i] || ""; }, // Alias - - // Lấy từ đúng theo index (chưa shuffle) - getCorrectWordByIndex: function (i) { - return this.correctWords[i] || ""; - }, - getCorrectLetterByIndex: function (i) { return this.getCorrectWordByIndex(i); }, // Alias - - // Lấy câu đúng - getCorrectSentence: function () { return this.correctSentence; }, - getCorrectWord: function () { return this.correctSentence; }, // Alias - - getWidth: function () { return this.newWidth; }, - getPosXbyIndex: function (i) { return this.listPosX[i] || 0; }, - - // ==================== TÍNH WIDTH/SIZE CHO TỪNG TỪ RIÊNG ==================== - - // Tính width cho từng từ dựa trên độ dài - // Sử dụng: Browser.ExecJS("tdv_sdk.getWidthByIndex(" & loopindex & ")") - getWidthByIndex: function (index) { - var word = this.currentWords[index] || ""; - return this.getWidthByWord(word); - }, - - // Tính width dựa trên độ dài từ - // charWidth: pixel/ký tự (mặc định 30) - // minWidth: width tối thiểu (mặc định 100) - // maxWidth: width tối đa (mặc định 350) - getWidthByWord: function (word, charWidth, minWidth, maxWidth) { - var len = String(word || "").length; - var cw = charWidth || 30; // Tăng từ 25 lên 30 - var min = minWidth || 100; // Tăng từ 80 lên 100 - var max = maxWidth || 350; // Tăng từ 250 lên 350 - - var w = len * cw + 50; // +50 padding (tăng từ 40) - return Math.max(min, Math.min(max, w)); - }, - - // Tính font size cho từng từ dựa trên độ dài - // baseSize: font size cơ bản (mặc định 40) - // Sử dụng: Browser.ExecJS("tdv_sdk.getFontSizeByIndex(" & loopindex & ", 40)") - getFontSizeByIndex: function (index, baseSize, boxWidth) { - var word = this.currentWords[index] || ""; - return this.getFontSizeByWord(word, baseSize, boxWidth); - }, - - // Tính font size để text VỪA VỚI BOX - // Đơn giản: từ dài → font nhỏ hơn - getFontSizeByWord: function (word, baseSize, boxWidth) { - var len = String(word || "").length; - var base = baseSize || 50; - - // Quy tắc đơn giản: cứ mỗi ký tự > 5 thì giảm font - if (len <= 2) return base; // "I", "He" - if (len <= 3) return base; // "The", "cat" - if (len <= 4) return base; // "love", "goes" - if (len <= 5) return base; // "plays", "happy" - if (len <= 6) return Math.round(base * 0.95); // "school" → 42 - if (len <= 7) return Math.round(base * 0.85); // "English" → 37 - if (len <= 8) return Math.round(base * 0.75); // "football", "everyday" → 32 - if (len <= 9) return Math.round(base * 0.6); // → 27 - if (len <= 10) return Math.round(base * 0.6); // "basketball" → 25 - return Math.round(base * 0.6); // > 10 → 20 - }, - - // Tính font size ĐỒNG ĐỀU cho tất cả từ (dựa trên từ dài nhất) - // Sử dụng: Browser.ExecJS("tdv_sdk.getUniformFontSize(40, 200)") - getUniformFontSize: function (baseSize, boxWidth) { - var base = baseSize || 40; - var box = boxWidth || 200; - - // Tìm từ dài nhất - var maxLen = 0; - for (var i = 0; i < this.currentWords.length; i++) { - if (this.currentWords[i].length > maxLen) { - maxLen = this.currentWords[i].length; - } - } - - if (maxLen === 0) return base; - - var neededWidth = maxLen * base * 0.6; - if (neededWidth <= (box - 20)) return base; - - var fitSize = Math.floor((box - 20) / (maxLen * 0.6)); - var minSize = Math.max(16, base * 0.4); - - return Math.max(minSize, fitSize); - }, - - // ==================== TÍNH SCALE ĐỂ TEXT VỪA BOX ==================== - - // Tính scale cho text/sprite để vừa với box cố định - // boxWidth: width của box (mặc định 200) - // charPixel: số pixel trung bình mỗi ký tự ở scale 1 (mặc định 25) - // Sử dụng: Browser.ExecJS("tdv_sdk.getScaleByIndex(" & loopindex & ", 200)") - getScaleByIndex: function (index, boxWidth, charPixel) { - var word = this.currentWords[index] || ""; - return this.getScaleByWord(word, boxWidth, charPixel); - }, - - // Tính scale dựa trên từ và boxWidth - getScaleByWord: function (word, boxWidth, charPixel) { - var len = String(word || "").length; - var box = boxWidth || 200; - var charW = charPixel || 25; // Pixel/ký tự ở scale 1 - - // Tính width cần thiết cho text ở scale 1 - var neededWidth = len * charW; - - // Nếu vừa box → scale 1, nếu không → scale nhỏ lại - if (neededWidth <= box) { - return 1.0; - } - - // Scale = boxWidth / neededWidth (với padding) - var scale = (box - 20) / neededWidth; // -20 padding - - // Giới hạn scale tối thiểu 0.4 để text không quá nhỏ - return Math.max(0.4, Math.round(scale * 100) / 100); - }, - - // Tính scale đồng đều cho TẤT CẢ từ (dựa trên từ dài nhất) - // Sử dụng: Browser.ExecJS("tdv_sdk.getUniformScale(200)") - getUniformScale: function (boxWidth, charPixel) { - var box = boxWidth || 200; - var charW = charPixel || 25; - - // Tìm từ dài nhất - var maxLen = 0; - for (var i = 0; i < this.currentWords.length; i++) { - var len = this.currentWords[i].length; - if (len > maxLen) maxLen = len; - } - - var neededWidth = maxLen * charW; - if (neededWidth <= box) return 1.0; - - var scale = (box - 20) / neededWidth; - return Math.max(0.4, Math.round(scale * 100) / 100); - }, - - getCurrentImage: function () { return this.currentQuestion ? (this.currentQuestion.image || "") : ""; }, - getCurrentAudio: function () { return this.currentQuestion ? (this.currentQuestion.audio || "") : ""; }, - getCurrentNumber: function () { return this.level + 1; }, - getTotalQuestions: function () { return this.totalQuestions; }, - getInstructions: function () { return this.instructions; }, - - getCurrentScore: function () { - if (this.totalQuestions === 0) return 0; - const seenIds = new Set(); - let correctCount = 0; - for (let i = this.userResults.length - 1; i >= 0; i--) { - const item = this.userResults[i]; - if (!seenIds.has(item.id)) { - if (item.result === 1) correctCount++; - seenIds.add(item.id); - } - } - let score = (correctCount / this.totalQuestions) * 10; - return Math.round(score * 10) / 10; - }, - - getFinalScore: function () { - let correct = this.userResults.filter(r => r.result === 1).length; - return correct * 100; - }, - - getCorrectCountText: function () { - const seenIds = new Set(); - let correctCount = 0; - for (let i = this.userResults.length - 1; i >= 0; i--) { - const item = this.userResults[i]; - if (!seenIds.has(item.id)) { - if (item.result === 1) correctCount++; - seenIds.add(item.id); - } - } - return correctCount + " / " + this.totalQuestions; - }, - - getCorrectResultText: function () { - return this.getCorrectCountText(); - }, - - getObjectPositions: function (n, objectWidth, margin, maxWidth) { - const totalWidth = n * objectWidth + (n - 1) * margin; - const startX = (maxWidth - totalWidth) / 2; - let positions = []; - for (let i = 0; i < n; i++) { - positions.push(startX + i * (objectWidth + margin)); - } - return positions.map(pos => pos + objectWidth / 2); - }, - - // ==================== VỊ TRÍ VỚI MARGIN CỐ ĐỊNH ==================== - // leftMargin: khoảng cách bên trái (mặc định 200) - // rightMargin: khoảng cách bên phải (mặc định 200) - // screenWidth: width màn hình (mặc định 1920) - - // Tính vị trí tất cả các ô với margin cố định - getFixedMarginPositions: function (leftMargin, rightMargin, screenWidth) { - var left = leftMargin || 200; - var right = rightMargin || 200; - var screen = screenWidth || 1920; - var n = this.currentWords.length; - - if (n <= 0) return []; - - // Vùng khả dụng - var availableWidth = screen - left - right; - - // Tính khoảng cách giữa các ô - var spacing = availableWidth / n; - - // Tính vị trí tâm của mỗi ô - var positions = []; - for (var i = 0; i < n; i++) { - positions.push(left + spacing * i + spacing / 2); - } - - // Lưu lại để dùng - this.listPosX = positions; - - console.log("📍 Fixed margin positions:", positions); - return positions; - }, - - // Lấy vị trí X của ô theo index (với margin cố định) - // Sử dụng: Browser.ExecJS("tdv_sdk.getFixedPosX(" & loopindex & ", 200, 200, 1920)") - getFixedPosX: function (index, leftMargin, rightMargin, screenWidth) { - var left = leftMargin || 200; - var right = rightMargin || 200; - var screen = screenWidth || 1920; - var n = this.currentWords.length; - - if (n <= 0 || index < 0 || index >= n) return 0; - - var availableWidth = screen - left - right; - var spacing = availableWidth / n; - - return left + spacing * index + spacing / 2; - }, - - // Tính width mỗi ô (với margin cố định, các ô cùng size) - // Sử dụng: Browser.ExecJS("tdv_sdk.getFixedWidth(200, 200, 1920, 20)") - getFixedWidth: function (leftMargin, rightMargin, screenWidth, gap) { - var left = leftMargin || 200; - var right = rightMargin || 200; - var screen = screenWidth || 1920; - var g = gap || 20; // Khoảng cách giữa các ô - var n = this.currentWords.length; - - if (n <= 0) return 0; - - var availableWidth = screen - left - right; - var totalGap = (n - 1) * g; - var boxWidth = (availableWidth - totalGap) / n; - - return Math.floor(boxWidth); - }, - - // ==================== VỊ TRÍ CĂN GIỮA VỚI SPACING CỐ ĐỊNH ==================== - // ===== LAYOUT CONFIG ===== - startY: 840, - spacingX: 210, - spacingY: 95, - - // ===== HELPER: chia số ô theo số dòng ===== - getRowConfig: function () { - var n = this.currentWords.length; - - // 1 dòng - if (n <= 5) { - return [n]; - } - - // 2 dòng (dòng trên nặng hơn) - if (n <= 10) { - var top = Math.ceil(n * 0.6); - var bottom = n - top; - return [top, bottom]; - } - - // 3 dòng (giảm dần) - var rows = []; - var remain = n; - - // dòng 1 ~ 40% - var r1 = Math.ceil(n * 0.4); - rows.push(r1); - remain -= r1; - - // dòng 2 ~ 35% của phần còn lại - var r2 = Math.ceil(remain * 0.5); - rows.push(r2); - remain -= r2; - - // dòng 3: còn lại - rows.push(remain); - - return rows; - }, - - - // ===== X POSITION ===== - getCenteredPosX: function (index) { - var rows = this.getRowConfig(); - var centerX = this.maxWWidth / 2; - - var acc = 0; - var row = 0; - var col = 0; - - for (var i = 0; i < rows.length; i++) { - if (index < acc + rows[i]) { - row = i; - col = index - acc; - break; - } - acc += rows[i]; - } - - var itemsInRow = rows[row]; - var totalWidth = (itemsInRow - 1) * this.spacingX; - var startX = centerX - totalWidth / 2; - - return startX + col * this.spacingX; - }, - - // ===== Y POSITION ===== - getCenteredPosY: function (index) { - var rows = this.getRowConfig(); - - var acc = 0; - var row = 0; - - for (var i = 0; i < rows.length; i++) { - if (index < acc + rows[i]) { - row = i; - break; - } - acc += rows[i]; - } - - return this.startY + row * this.spacingY; - }, - - // ===== CHECKER Y (luôn dưới answers) ===== - getCheckerBaseY: function (index) { - var rows = this.getRowConfig(); - - // Tổng chiều cao answers - var answerBlockHeight = rows.length * this.spacingY; - - // Xác định checker đang ở dòng nào - var acc = 0; - var row = 0; - - for (var i = 0; i < rows.length; i++) { - if (index < acc + rows[i]) { - row = i; - break; - } - acc += rows[i]; - } - - // Checker nằm dưới answers + theo dòng tương ứng - return this.startY - + this.spacingY // khoảng cách giữa answers & checker - + row * this.spacingY // dòng checker - + 10; // padding nhỏ - }, - -// centerX: 600, // Tâm màn hình X -// startY: 800, // Y của dòng đầu tiên -// spacingX: 210, // Khoảng cách giữa các ô (X & Y) -// spacingY: 95, -// maxPerRow: 5, // Số ô mỗi dòng -// // Lấy vị trí X của ô theo index (căn giữa + spacing cố định) -// // Sử dụng: Browser.ExecJS("tdv_sdk.getCenteredPosX(" & loopindex & ", 960, 200)") -// getCenteredPosX: function (index) { - -// var n = this.currentWords.length; -// if (n <= 0) return this.centerX; - -// var row = Math.floor(index / this.maxPerRow); - -// // Số ô trong dòng hiện tại -// var itemsInRow = Math.min( -// this.maxPerRow, -// n - row * this.maxPerRow -// ); - -// var totalWidth = (itemsInRow - 1) * this.spacingX; -// var startX = this.centerX - totalWidth / 2; - -// var col = index % this.maxPerRow; -// return startX + col * this.spacingX; -// }, - -// // ===== TÍNH Y (XUỐNG DÒNG) ===== -// getCenteredPosY: function () { - -// // var row = Math.floor(index / this.maxPerRow); -// return this.startY; -// }, -// getCheckerBaseY: function (index) { - -// var n = this.currentWords.length; -// if (n <= 0) return this.startY; - -// var row = Math.floor(index / this.maxPerRow); -// // checker nằm dưới dòng answers cuối -// return this.startY + 1 * this.spacingY + row * this.spacingY + 10; -// }, - shuffleArray: function (array) { - for (let i = array.length - 1; i > 0; i--) { - const j = Math.floor(Math.random() * (i + 1)); - [array[i], array[j]] = [array[j], array[i]]; - } - return array; - }, - - nextQuestion: function () { - if (this.level < this.totalQuestions - 1) { - this.level++; - this.loadQuestions(); - return 1; - } - return 0; - }, - - // --- AUDIO --- - playAudio: function () { - var audioSrc = this.getCurrentAudio(); - if (!audioSrc) { - console.log("No audio for this sentence"); - return; - } - - if (window.audio && !window.audio.paused) { - window.audio.pause(); - window.audio.currentTime = 0; - } - - var audio = new Audio(audioSrc); - window.audio = audio; - audio.play().catch(e => console.error("Audio error:", e)); - console.log("🔊 Playing audio:", audioSrc); - }, - - // --- KẾT THÚC & LEADERBOARD --- - forceFinishGame: function () { this.result(); }, - - result: function () { - const uniqueResults = []; - const seenIds = new Set(); - for (let i = this.userResults.length - 1; i >= 0; i--) { - if (!seenIds.has(this.userResults[i].id)) { - uniqueResults.unshift(this.userResults[i]); - seenIds.add(this.userResults[i].id); - } - } - - const totalScore = this.getCurrentScore(); - const timeSpent = this.getTimeSpent(); - - const finalData = { - game_id: this.gameID, - user_id: this.userId, - score: totalScore, - time_spent: timeSpent, - details: uniqueResults - }; - - console.log("📊 Final Result - Score:", totalScore, "Time Spent:", timeSpent, "s"); - this.onGameFinished(finalData); - window.parent.postMessage({ type: "FINAL_RESULT", data: finalData }, "*"); - this.leaderboard(); - }, - - // --- LEADERBOARD --- - leaderboard: function () { - var self = this; - window.parent.postMessage({ type: "GET_LEADERBOARD", game_id: this.gameID }, "*"); - - setTimeout(function () { - if (!self.leaderboardData) { - console.warn("⚠️ SDK: No leaderboard from server - Generating with user score"); - self.loadLeaderboard(self.generateUserLeaderboard()); - } - }, 2000); - }, - - generateUserLeaderboard: function () { - var userScore = this.getCurrentScore(); - var userName = this.userId || "You"; - var userTimeSpent = this.getTimeSpent(); - - var topPlayers = JSON.parse(JSON.stringify(this.defaultLeaderboard.top_players)); - var userPlayer = { rank: 0, name: userName, score: userScore, time_spent: userTimeSpent }; - - var userRankIndex = -1; - for (var i = 0; i < topPlayers.length; i++) { - if (userScore > topPlayers[i].score || - (userScore === topPlayers[i].score && userTimeSpent < topPlayers[i].time_spent)) { - userRankIndex = i; - break; - } - } - - var result = { top_players: [], user_rank: null }; - - if (userRankIndex !== -1) { - topPlayers.splice(userRankIndex, 0, userPlayer); - topPlayers = topPlayers.slice(0, 3); - for (var j = 0; j < topPlayers.length; j++) { - topPlayers[j].rank = j + 1; - } - result.top_players = topPlayers; - result.user_rank = topPlayers[userRankIndex]; - } else { - result.top_players = topPlayers; - result.user_rank = { rank: 4, name: userName, score: userScore, time_spent: userTimeSpent }; - } - - console.log("📊 Generated leaderboard - User rank:", result.user_rank.rank); - return result; - }, - - loadLeaderboard: function (data) { - this.leaderboardData = data; - if (window['TDVTriger']) window['TDVTriger'].runtime.trigger(cr.plugins_.TDVplugin.prototype.cnds.OnLeaderboardLoaded, window['TDVTriger']); - }, - - getLbLength: function () { - return (this.leaderboardData && this.leaderboardData.top_players) ? this.leaderboardData.top_players.length : 0; - }, - - getLbItemY: function (index, startY, spacing) { - return startY + (index * spacing); - }, - - getLbAttr: function (index, attr) { - if (!this.leaderboardData || !this.leaderboardData.top_players) return ""; - var i = parseInt(index); - if (!isNaN(i) && this.leaderboardData.top_players[i]) { - var value = this.leaderboardData.top_players[i][attr]; - if (attr === 'rank' && value !== undefined) return value; - if (attr === 'time_spent' && value !== undefined) return value + "s"; - return value !== undefined ? value : ""; - } - return ""; - }, - - getLbUserAttr: function (attr) { - if (this.leaderboardData && this.leaderboardData.user_rank) { - var value = this.leaderboardData.user_rank[attr]; - if (attr === 'rank' && value) return value; - if (attr === 'time_spent' && value !== undefined) return value + "s"; - return value !== undefined ? value : ""; - } - return (attr === 'score') ? "0" : (attr === 'time_spent') ? "0s" : ""; - } -}; - -window.addEventListener("message", function (event) { - if (!event.data) return; - if (event.data.type === "SERVER_PUSH_DATA") tdv_sdk.load(event.data.jsonData); - if (event.data.type === "SERVER_PUSH_LEADERBOARD") tdv_sdk.loadLeaderboard(event.data.leaderboardData); -}); diff --git a/G102-sequence/appmanifest.json b/audio_spelling_sequence_sentence/appmanifest.json similarity index 88% rename from G102-sequence/appmanifest.json rename to audio_spelling_sequence_sentence/appmanifest.json index be139ae..77a2485 100644 --- a/G102-sequence/appmanifest.json +++ b/audio_spelling_sequence_sentence/appmanifest.json @@ -1,6 +1,6 @@ { - "name": "G102-sequence", - "short_name": "G102-sequence", + "name": "G120-sequence", + "short_name": "G120-sequence", "start_url": "index.html", "display": "fullscreen", "orientation": "any", diff --git a/G102-sequence/c2runtime.js b/audio_spelling_sequence_sentence/c2runtime.js similarity index 91% rename from G102-sequence/c2runtime.js rename to audio_spelling_sequence_sentence/c2runtime.js index 688a430..06f8929 100644 --- a/G102-sequence/c2runtime.js +++ b/audio_spelling_sequence_sentence/c2runtime.js @@ -19321,6 +19321,373 @@ cr.plugins_.Function = function(runtime) }()); ; ; +cr.plugins_.SenaPlugin = function (runtime) { + this.runtime = runtime; +}; +(function () { + var pluginProto = cr.plugins_.SenaPlugin.prototype; + pluginProto.Type = function (plugin) { + this.plugin = plugin; + this.runtime = plugin.runtime; + }; + var typeProto = pluginProto.Type.prototype; + typeProto.onCreate = function () { + }; + pluginProto.Instance = function (type) { + this.type = type; + this.runtime = type.runtime; + }; + var instanceProto = pluginProto.Instance.prototype; + instanceProto.onCreate = function () { + window['SenaTrigger'] = this; + this.sdk = null; + this.isPaused = false; + this.pauseTime = 0; + this.totalPausedTime = 0; + this.bgMusic = null; + this.bgMusicPlaying = false; + this.bgMusicPaused = false; + this.calculatedPositions = []; + }; + instanceProto.onDestroy = function () { + if (this.sdk) { + this.sdk.destroy(); + } + if (this.bgMusic) { + this.bgMusic.pause(); + this.bgMusic = null; + } + }; + function Cnds() { + }; + Cnds.prototype.OnLoad = function () { + return true; + }; + Cnds.prototype.OnStart = function () { + return true; + }; + Cnds.prototype.OnCorrect = function () { + return true; + }; + Cnds.prototype.OnWrong = function () { + return true; + }; + Cnds.prototype.OnPause = function () { + return true; + }; + Cnds.prototype.OnResume = function () { + return true; + }; + pluginProto.cnds = new Cnds(); + function Acts() { + }; + Acts.prototype.Load = function () { + var self = this; + var gameCode = this.properties[0] || 'G2510S1T30'; + if (window['SenaSDK']) { + this.sdk = new window['SenaSDK'](gameCode); + this.sdk.load(function(success) { + if (success) { + console.log('SDK loaded successfully'); + window['SenaTrigger'].runtime.trigger(cr.plugins_.SenaPlugin.prototype.cnds.OnLoad, window['SenaTrigger']); + } else { + console.error('Failed to load SDK data'); + } + }, gameCode); + } else { + console.error('SenaSDK not found'); + } + }; + Acts.prototype.Start = function () { + var self = this; + if (self.sdk) { + self.sdk.start(); + console.log('Game started'); + window['SenaTrigger'].runtime.trigger(cr.plugins_.SenaPlugin.prototype.cnds.OnStart, window['SenaTrigger']); + } + }; + Acts.prototype.Finish = function (answer) { + var self = this; + if (this.sdk) { + this.sdk.end(answer, function(isCorrect) { + if (isCorrect) { + window['SenaTrigger'].runtime.trigger(cr.plugins_.SenaPlugin.prototype.cnds.OnCorrect, window['SenaTrigger']); + } else { + window['SenaTrigger'].runtime.trigger(cr.plugins_.SenaPlugin.prototype.cnds.OnWrong, window['SenaTrigger']); + } + }); + } + }; + Acts.prototype.PlayVoice = function (type) { + var self = this; + if (this.sdk && this.sdk.playVoice) { + this.sdk.playVoice(type); + } + }; + Acts.prototype.StopVoice = function () { + var self = this; + if (this.sdk && this.sdk.stopSound) { + this.sdk.stopSound(); + } + }; + Acts.prototype.PlayBGMusic = function () { + var self = this; + if (this.bgMusic) { + this.bgMusic.play(); + this.bgMusicPlaying = true; + this.bgMusicPaused = false; + } + }; + Acts.prototype.StopBGMusic = function () { + var self = this; + if (this.bgMusic) { + this.bgMusic.pause(); + this.bgMusic.currentTime = 0; + this.bgMusicPlaying = false; + this.bgMusicPaused = false; + } + }; + Acts.prototype.PauseBGMusic = function () { + var self = this; + if (this.bgMusic && this.bgMusicPlaying) { + this.bgMusic.pause(); + this.bgMusicPaused = true; + } + }; + Acts.prototype.ResumeBGMusic = function () { + var self = this; + if (this.bgMusic && this.bgMusicPaused) { + this.bgMusic.play(); + this.bgMusicPaused = false; + } + }; + Acts.prototype.PauseGame = function () { + var self = this; + if (!this.isPaused) { + this.isPaused = true; + this.pauseTime = Date.now(); + window['SenaTrigger'].runtime.trigger(cr.plugins_.SenaPlugin.prototype.cnds.OnPause, window['SenaTrigger']); + } + }; + Acts.prototype.ResumeGame = function () { + var self = this; + if (this.isPaused) { + this.isPaused = false; + this.totalPausedTime += (Date.now() - this.pauseTime); + window['SenaTrigger'].runtime.trigger(cr.plugins_.SenaPlugin.prototype.cnds.OnResume, window['SenaTrigger']); + } + }; + Acts.prototype.ResetGame = function () { + var self = this; + if (this.sdk && this.sdk.reset) { + this.sdk.reset(); + this.isPaused = false; + this.pauseTime = 0; + this.totalPausedTime = 0; + } + }; + Acts.prototype.CalcObjectPositions = function ( + count, + objectWidth, + margin, + maxWidth, + rowBreak, + rowGap, + type +) { + this.calculatedPositions = []; + if (count <= 0) return; + var rows = []; + if (rowBreak > 0) { + for (var i = 0; i < count; i += rowBreak) { + rows.push(Math.min(rowBreak, count - i)); + } + } else { + if (count <= 5) { + rows.push(count); + } else { + var top = Math.ceil((count + 1) / 2); + var bottom = count - top; + rows.push(top); + rows.push(bottom); + } + } + var baseY = 0; + if (type === "word") { + baseY = rowGap * rows.length; // word luôn nằm dưới slot + } + var index = 0; + for (var r = 0; r < rows.length; r++) { + var itemsInRow = rows[r]; + var rowWidth = itemsInRow * objectWidth + (itemsInRow - 1) * margin; + var startX = (maxWidth - rowWidth) / 2; + for (var i = 0; i < itemsInRow; i++) { + this.calculatedPositions.push({ + x: startX + i * (objectWidth + margin) + objectWidth / 2, + y: baseY + r * rowGap + }); + index++; + } + } +}; + pluginProto.acts = new Acts(); + function Exps() { + }; + Exps.prototype.getQuestionValue = function (ret) { + if (this.sdk) { + ret.set_string(this.sdk.getQuestionValue() || ""); + } else { + ret.set_string(""); + } + }; + Exps.prototype.getQuestionType = function (ret) { + if (this.sdk) { + ret.set_string(this.sdk.getQuestionType() || "text"); + } else { + ret.set_string("text"); + } + }; + Exps.prototype.getRequestValue = function (ret) { + if (this.sdk) { + ret.set_string(this.sdk.getRequestValue() || ""); + } else { + ret.set_string(""); + } + }; + Exps.prototype.getRequestType = function (ret) { + if (this.sdk) { + ret.set_string(this.sdk.getRequestType() || "text"); + } else { + ret.set_string("text"); + } + }; + Exps.prototype.getOptionsCount = function (ret) { + if (this.sdk) { + ret.set_int(this.sdk.getOptionsCount() || 0); + } else { + ret.set_int(0); + } + }; + Exps.prototype.getOptionsType = function (ret) { + if (this.sdk) { + ret.set_string(this.sdk.getOptionsType() || "text"); + } else { + ret.set_string("text"); + } + }; + Exps.prototype.getOptionsValue = function (ret, index) { + if (this.sdk) { + var value = this.sdk.getOptionsValue(index); + if (value && typeof value === 'object') { + ret.set_string(JSON.stringify(value)); + } else { + ret.set_string(value || ""); + } + } else { + ret.set_string(""); + } + }; + Exps.prototype.getHintType = function (ret) { + if (this.sdk) { + ret.set_string(this.sdk.getHintType() || ""); + } else { + ret.set_string(""); + } + }; + Exps.prototype.getHintCount = function (ret) { + if (this.sdk) { + ret.set_int(this.sdk.getHintCount() || 0); + } else { + ret.set_int(0); + } + }; + Exps.prototype.getHintValue = function (ret, index) { + if (this.sdk) { + var value = this.sdk.getHintValue(index); + if (value === null) { + ret.set_string(""); + } else if (typeof value === 'object') { + ret.set_string(JSON.stringify(value)); + } else { + ret.set_string(value.toString()); + } + } else { + ret.set_string(""); + } + }; + Exps.prototype.getTimeLimit = function (ret) { + if (this.sdk) { + ret.set_int(this.sdk.timeLimit || 0); + } else { + ret.set_int(0); + } + }; + Exps.prototype.getShuffle = function (ret) { + if (this.sdk) { + ret.set_int(this.sdk.shuffle ? 1 : 0); + } else { + ret.set_int(1); + } + }; + Exps.prototype.getGameCode = function (ret) { + if (this.sdk) { + ret.set_string(this.sdk.gameCode || ""); + } else { + ret.set_string(""); + } + }; + Exps.prototype.getGuide = function (ret) { + if (this.sdk && this.sdk.guide) { + ret.set_string(this.sdk.guide() || ""); + } else { + ret.set_string(""); + } + }; + Exps.prototype.isVoicePlaying = function (ret) { + if (this.sdk && this.sdk.isSpeaking) { + ret.set_int(this.sdk.isSpeaking() ? 1 : 0); + } else { + ret.set_int(0); + } + }; + Exps.prototype.isMusicPlaying = function (ret) { + ret.set_int(this.bgMusicPlaying ? 1 : 0); + }; + Exps.prototype.isMusicPaused = function (ret) { + ret.set_int(this.bgMusicPaused ? 1 : 0); + }; + Exps.prototype.isGamePaused = function (ret) { + ret.set_int(this.isPaused ? 1 : 0); + }; + Exps.prototype.getElapsedTime = function (ret) { + if (this.sdk && this.sdk.startTime) { + var elapsed = (Date.now() - this.sdk.startTime - this.totalPausedTime) / 1000; + if (this.isPaused) { + elapsed -= (Date.now() - this.pauseTime) / 1000; + } + ret.set_float(Math.max(0, elapsed)); + } else { + ret.set_float(0); + } + }; + Exps.prototype.getPosXbyIndex = function (ret, index) { + if (this.calculatedPositions[index]) { + ret.set_float(this.calculatedPositions[index].x); + } else { + ret.set_float(0); + } +}; +Exps.prototype.getPosYbyIndex = function (ret, index) { + if (this.calculatedPositions[index]) { + ret.set_float(this.calculatedPositions[index].y); + } else { + ret.set_float(0); + } +}; + pluginProto.exps = new Exps(); +}()); +; +; cr.plugins_.Sprite = function(runtime) { this.runtime = runtime; @@ -21345,744 +21712,6 @@ cr.plugins_.SpriteFontPlus = function(runtime) }()); ; ; -cr.plugins_.TDVplugin = function (runtime) { - this.runtime = runtime; -}; -(function () { - var pluginProto = cr.plugins_.TDVplugin.prototype; - pluginProto.Type = function (plugin) { - this.plugin = plugin; - this.runtime = plugin.runtime; - }; - var typeProto = pluginProto.Type.prototype; - typeProto.onCreate = function () { - }; - pluginProto.Instance = function (type) { - this.type = type; - this.runtime = type.runtime; - }; - var instanceProto = pluginProto.Instance.prototype; - instanceProto.onCreate = function () { - window['TDVTriger'] = this; - }; - instanceProto.onDestroy = function () { - }; - function Cnds() { - }; - Cnds.prototype.OnStart = function (tag) { - return true; - }; - Cnds.prototype.OnCorrect = function (tag) { - return true; - }; - Cnds.prototype.OnWrong = function (tag) { - return true; - }; - pluginProto.cnds = new Cnds(); - function Acts() { - }; - Acts.prototype.START = function () { - var self = this; - console.log('## START'); - window['TDVTriger'].runtime.trigger(cr.plugins_.TDVplugin.prototype.cnds.OnStart, window['TDVTriger']); - }; - Acts.prototype.END = function () { - var self = this; - console.log('## END'); - if (window['tdv_sdk']) - if (window['tdv_sdk']['end']) - window['tdv_sdk']['end'](); - }; - Acts.prototype.FINISH = function (answer) { - var self = this; - console.log('## FINISH'); - if (window['tdv_sdk']) { - if (window['tdv_sdk'].questions && window['tdv_sdk'].questions.answer) { - if (window['tdv_sdk'].questions.answer.toLowerCase() === answer.toLowerCase()) { - window['TDVTriger'].runtime.trigger(cr.plugins_.TDVplugin.prototype.cnds.OnCorrect, window['TDVTriger']); - } else { - window['TDVTriger'].runtime.trigger(cr.plugins_.TDVplugin.prototype.cnds.OnWrong, window['TDVTriger']); - } - } else { - console.error('No answer found in tdv_sdk'); - } - } - } - pluginProto.acts = new Acts(); - function Exps() { - }; - pluginProto.exps = {}; - var exps = pluginProto.exps; - Exps.prototype.getData = function (ret,key) { - switch (key) { - case 'question': - ret.set_string(window['tdv_sdk'].questions.question || ''); - break; - case 'request': - ret.set_string(window['tdv_sdk'].questions.request || ''); - break; - case 'answer': - ret.set_string(window['tdv_sdk'].questions.answer || ''); - break; - case 'voice': - ret.set_string(window['tdv_sdk'].questions.voice || ''); - break; - case 'answerA': - console.log('answerA', window['tdv_sdk'].questions.options[0]); - ret.set_string(window['tdv_sdk'].questions.options[0] || ''); - break; - case 'answerB': - console.log('answerB', window['tdv_sdk'].questions.options[1]); - ret.set_string(window['tdv_sdk'].questions.options[1] || ''); - break; - case 'answerC': - console.log('answerC', window['tdv_sdk'].questions.options[2]); - ret.set_string(window['tdv_sdk'].questions.options[2] || ''); - break; - case 'answerD': - console.log('answerD', window['tdv_sdk'].questions.options[3]); - ret.set_string(window['tdv_sdk'].questions.options[3] || ''); - break; - } - }; - pluginProto.exps = new Exps(); -}()); -; -; -cr.plugins_.Text = function(runtime) -{ - this.runtime = runtime; -}; -(function () -{ - var pluginProto = cr.plugins_.Text.prototype; - pluginProto.onCreate = function () - { - pluginProto.acts.SetWidth = function (w) - { - if (this.width !== w) - { - this.width = w; - this.text_changed = true; // also recalculate text wrapping - this.set_bbox_changed(); - } - }; - }; - pluginProto.Type = function(plugin) - { - this.plugin = plugin; - this.runtime = plugin.runtime; - }; - var typeProto = pluginProto.Type.prototype; - typeProto.onCreate = function() - { - }; - typeProto.onLostWebGLContext = function () - { - if (this.is_family) - return; - var i, len, inst; - for (i = 0, len = this.instances.length; i < len; i++) - { - inst = this.instances[i]; - inst.mycanvas = null; - inst.myctx = null; - inst.mytex = null; - } - }; - pluginProto.Instance = function(type) - { - this.type = type; - this.runtime = type.runtime; - if (this.recycled) - cr.clearArray(this.lines); - else - this.lines = []; // for word wrapping - this.text_changed = true; - }; - var instanceProto = pluginProto.Instance.prototype; - var requestedWebFonts = {}; // already requested web fonts have an entry here - instanceProto.onCreate = function() - { - this.text = this.properties[0]; - this.visible = (this.properties[1] === 0); // 0=visible, 1=invisible - this.font = this.properties[2]; - this.color = this.properties[3]; - this.halign = this.properties[4]; // 0=left, 1=center, 2=right - this.valign = this.properties[5]; // 0=top, 1=center, 2=bottom - this.wrapbyword = (this.properties[7] === 0); // 0=word, 1=character - this.lastwidth = this.width; - this.lastwrapwidth = this.width; - this.lastheight = this.height; - this.line_height_offset = this.properties[8]; - this.facename = ""; - this.fontstyle = ""; - this.ptSize = 0; - this.textWidth = 0; - this.textHeight = 0; - this.parseFont(); - this.mycanvas = null; - this.myctx = null; - this.mytex = null; - this.need_text_redraw = false; - this.last_render_tick = this.runtime.tickcount; - if (this.recycled) - this.rcTex.set(0, 0, 1, 1); - else - this.rcTex = new cr.rect(0, 0, 1, 1); - if (this.runtime.glwrap) - this.runtime.tickMe(this); -; - }; - instanceProto.parseFont = function () - { - var arr = this.font.split(" "); - var i; - for (i = 0; i < arr.length; i++) - { - if (arr[i].substr(arr[i].length - 2, 2) === "pt") - { - this.ptSize = parseInt(arr[i].substr(0, arr[i].length - 2)); - this.pxHeight = Math.ceil((this.ptSize / 72.0) * 96.0) + 4; // assume 96dpi... - if (i > 0) - this.fontstyle = arr[i - 1]; - this.facename = arr[i + 1]; - for (i = i + 2; i < arr.length; i++) - this.facename += " " + arr[i]; - break; - } - } - }; - instanceProto.saveToJSON = function () - { - return { - "t": this.text, - "f": this.font, - "c": this.color, - "ha": this.halign, - "va": this.valign, - "wr": this.wrapbyword, - "lho": this.line_height_offset, - "fn": this.facename, - "fs": this.fontstyle, - "ps": this.ptSize, - "pxh": this.pxHeight, - "tw": this.textWidth, - "th": this.textHeight, - "lrt": this.last_render_tick - }; - }; - instanceProto.loadFromJSON = function (o) - { - this.text = o["t"]; - this.font = o["f"]; - this.color = o["c"]; - this.halign = o["ha"]; - this.valign = o["va"]; - this.wrapbyword = o["wr"]; - this.line_height_offset = o["lho"]; - this.facename = o["fn"]; - this.fontstyle = o["fs"]; - this.ptSize = o["ps"]; - this.pxHeight = o["pxh"]; - this.textWidth = o["tw"]; - this.textHeight = o["th"]; - this.last_render_tick = o["lrt"]; - this.text_changed = true; - this.lastwidth = this.width; - this.lastwrapwidth = this.width; - this.lastheight = this.height; - }; - instanceProto.tick = function () - { - if (this.runtime.glwrap && this.mytex && (this.runtime.tickcount - this.last_render_tick >= 300)) - { - var layer = this.layer; - this.update_bbox(); - var bbox = this.bbox; - if (bbox.right < layer.viewLeft || bbox.bottom < layer.viewTop || bbox.left > layer.viewRight || bbox.top > layer.viewBottom) - { - this.runtime.glwrap.deleteTexture(this.mytex); - this.mytex = null; - this.myctx = null; - this.mycanvas = null; - } - } - }; - instanceProto.onDestroy = function () - { - this.myctx = null; - this.mycanvas = null; - if (this.runtime.glwrap && this.mytex) - this.runtime.glwrap.deleteTexture(this.mytex); - this.mytex = null; - }; - instanceProto.updateFont = function () - { - this.font = this.fontstyle + " " + this.ptSize.toString() + "pt " + this.facename; - this.text_changed = true; - this.runtime.redraw = true; - }; - instanceProto.draw = function(ctx, glmode) - { - ctx.font = this.font; - ctx.textBaseline = "top"; - ctx.fillStyle = this.color; - ctx.globalAlpha = glmode ? 1 : this.opacity; - var myscale = 1; - if (glmode) - { - myscale = Math.abs(this.layer.getScale()); - ctx.save(); - ctx.scale(myscale, myscale); - } - if (this.text_changed || this.width !== this.lastwrapwidth) - { - this.type.plugin.WordWrap(this.text, this.lines, ctx, this.width, this.wrapbyword); - this.text_changed = false; - this.lastwrapwidth = this.width; - } - this.update_bbox(); - var penX = glmode ? 0 : this.bquad.tlx; - var penY = glmode ? 0 : this.bquad.tly; - if (this.runtime.pixel_rounding) - { - penX = (penX + 0.5) | 0; - penY = (penY + 0.5) | 0; - } - if (this.angle !== 0 && !glmode) - { - ctx.save(); - ctx.translate(penX, penY); - ctx.rotate(this.angle); - penX = 0; - penY = 0; - } - var endY = penY + this.height; - var line_height = this.pxHeight; - line_height += this.line_height_offset; - var drawX; - var i; - if (this.valign === 1) // center - penY += Math.max(this.height / 2 - (this.lines.length * line_height) / 2, 0); - else if (this.valign === 2) // bottom - penY += Math.max(this.height - (this.lines.length * line_height) - 2, 0); - for (i = 0; i < this.lines.length; i++) - { - drawX = penX; - if (this.halign === 1) // center - drawX = penX + (this.width - this.lines[i].width) / 2; - else if (this.halign === 2) // right - drawX = penX + (this.width - this.lines[i].width); - ctx.fillText(this.lines[i].text, drawX, penY); - penY += line_height; - if (penY >= endY - line_height) - break; - } - if (this.angle !== 0 || glmode) - ctx.restore(); - this.last_render_tick = this.runtime.tickcount; - }; - instanceProto.drawGL = function(glw) - { - if (this.width < 1 || this.height < 1) - return; - var need_redraw = this.text_changed || this.need_text_redraw; - this.need_text_redraw = false; - var layer_scale = this.layer.getScale(); - var layer_angle = this.layer.getAngle(); - var rcTex = this.rcTex; - var floatscaledwidth = layer_scale * this.width; - var floatscaledheight = layer_scale * this.height; - var scaledwidth = Math.ceil(floatscaledwidth); - var scaledheight = Math.ceil(floatscaledheight); - var absscaledwidth = Math.abs(scaledwidth); - var absscaledheight = Math.abs(scaledheight); - var halfw = this.runtime.draw_width / 2; - var halfh = this.runtime.draw_height / 2; - if (!this.myctx) - { - this.mycanvas = document.createElement("canvas"); - this.mycanvas.width = absscaledwidth; - this.mycanvas.height = absscaledheight; - this.lastwidth = absscaledwidth; - this.lastheight = absscaledheight; - need_redraw = true; - this.myctx = this.mycanvas.getContext("2d"); - } - if (absscaledwidth !== this.lastwidth || absscaledheight !== this.lastheight) - { - this.mycanvas.width = absscaledwidth; - this.mycanvas.height = absscaledheight; - if (this.mytex) - { - glw.deleteTexture(this.mytex); - this.mytex = null; - } - need_redraw = true; - } - if (need_redraw) - { - this.myctx.clearRect(0, 0, absscaledwidth, absscaledheight); - this.draw(this.myctx, true); - if (!this.mytex) - this.mytex = glw.createEmptyTexture(absscaledwidth, absscaledheight, this.runtime.linearSampling, this.runtime.isMobile); - glw.videoToTexture(this.mycanvas, this.mytex, this.runtime.isMobile); - } - this.lastwidth = absscaledwidth; - this.lastheight = absscaledheight; - glw.setTexture(this.mytex); - glw.setOpacity(this.opacity); - glw.resetModelView(); - glw.translate(-halfw, -halfh); - glw.updateModelView(); - var q = this.bquad; - var tlx = this.layer.layerToCanvas(q.tlx, q.tly, true, true); - var tly = this.layer.layerToCanvas(q.tlx, q.tly, false, true); - var trx = this.layer.layerToCanvas(q.trx, q.try_, true, true); - var try_ = this.layer.layerToCanvas(q.trx, q.try_, false, true); - var brx = this.layer.layerToCanvas(q.brx, q.bry, true, true); - var bry = this.layer.layerToCanvas(q.brx, q.bry, false, true); - var blx = this.layer.layerToCanvas(q.blx, q.bly, true, true); - var bly = this.layer.layerToCanvas(q.blx, q.bly, false, true); - if (this.runtime.pixel_rounding || (this.angle === 0 && layer_angle === 0)) - { - var ox = ((tlx + 0.5) | 0) - tlx; - var oy = ((tly + 0.5) | 0) - tly - tlx += ox; - tly += oy; - trx += ox; - try_ += oy; - brx += ox; - bry += oy; - blx += ox; - bly += oy; - } - if (this.angle === 0 && layer_angle === 0) - { - trx = tlx + scaledwidth; - try_ = tly; - brx = trx; - bry = tly + scaledheight; - blx = tlx; - bly = bry; - rcTex.right = 1; - rcTex.bottom = 1; - } - else - { - rcTex.right = floatscaledwidth / scaledwidth; - rcTex.bottom = floatscaledheight / scaledheight; - } - glw.quadTex(tlx, tly, trx, try_, brx, bry, blx, bly, rcTex); - glw.resetModelView(); - glw.scale(layer_scale, layer_scale); - glw.rotateZ(-this.layer.getAngle()); - glw.translate((this.layer.viewLeft + this.layer.viewRight) / -2, (this.layer.viewTop + this.layer.viewBottom) / -2); - glw.updateModelView(); - this.last_render_tick = this.runtime.tickcount; - }; - var wordsCache = []; - pluginProto.TokeniseWords = function (text) - { - cr.clearArray(wordsCache); - var cur_word = ""; - var ch; - var i = 0; - while (i < text.length) - { - ch = text.charAt(i); - if (ch === "\n") - { - if (cur_word.length) - { - wordsCache.push(cur_word); - cur_word = ""; - } - wordsCache.push("\n"); - ++i; - } - else if (ch === " " || ch === "\t" || ch === "-") - { - do { - cur_word += text.charAt(i); - i++; - } - while (i < text.length && (text.charAt(i) === " " || text.charAt(i) === "\t")); - wordsCache.push(cur_word); - cur_word = ""; - } - else if (i < text.length) - { - cur_word += ch; - i++; - } - } - if (cur_word.length) - wordsCache.push(cur_word); - }; - var linesCache = []; - function allocLine() - { - if (linesCache.length) - return linesCache.pop(); - else - return {}; - }; - function freeLine(l) - { - linesCache.push(l); - }; - function freeAllLines(arr) - { - var i, len; - for (i = 0, len = arr.length; i < len; i++) - { - freeLine(arr[i]); - } - cr.clearArray(arr); - }; - pluginProto.WordWrap = function (text, lines, ctx, width, wrapbyword) - { - if (!text || !text.length) - { - freeAllLines(lines); - return; - } - if (width <= 2.0) - { - freeAllLines(lines); - return; - } - if (text.length <= 100 && text.indexOf("\n") === -1) - { - var all_width = ctx.measureText(text).width; - if (all_width <= width) - { - freeAllLines(lines); - lines.push(allocLine()); - lines[0].text = text; - lines[0].width = all_width; - return; - } - } - this.WrapText(text, lines, ctx, width, wrapbyword); - }; - function trimSingleSpaceRight(str) - { - if (!str.length || str.charAt(str.length - 1) !== " ") - return str; - return str.substring(0, str.length - 1); - }; - pluginProto.WrapText = function (text, lines, ctx, width, wrapbyword) - { - var wordArray; - if (wrapbyword) - { - this.TokeniseWords(text); // writes to wordsCache - wordArray = wordsCache; - } - else - wordArray = text; - var cur_line = ""; - var prev_line; - var line_width; - var i; - var lineIndex = 0; - var line; - for (i = 0; i < wordArray.length; i++) - { - if (wordArray[i] === "\n") - { - if (lineIndex >= lines.length) - lines.push(allocLine()); - cur_line = trimSingleSpaceRight(cur_line); // for correct center/right alignment - line = lines[lineIndex]; - line.text = cur_line; - line.width = ctx.measureText(cur_line).width; - lineIndex++; - cur_line = ""; - continue; - } - prev_line = cur_line; - cur_line += wordArray[i]; - line_width = ctx.measureText(cur_line).width; - if (line_width >= width) - { - if (lineIndex >= lines.length) - lines.push(allocLine()); - prev_line = trimSingleSpaceRight(prev_line); - line = lines[lineIndex]; - line.text = prev_line; - line.width = ctx.measureText(prev_line).width; - lineIndex++; - cur_line = wordArray[i]; - if (!wrapbyword && cur_line === " ") - cur_line = ""; - } - } - if (cur_line.length) - { - if (lineIndex >= lines.length) - lines.push(allocLine()); - cur_line = trimSingleSpaceRight(cur_line); - line = lines[lineIndex]; - line.text = cur_line; - line.width = ctx.measureText(cur_line).width; - lineIndex++; - } - for (i = lineIndex; i < lines.length; i++) - freeLine(lines[i]); - lines.length = lineIndex; - }; - function Cnds() {}; - Cnds.prototype.CompareText = function(text_to_compare, case_sensitive) - { - if (case_sensitive) - return this.text == text_to_compare; - else - return cr.equals_nocase(this.text, text_to_compare); - }; - pluginProto.cnds = new Cnds(); - function Acts() {}; - Acts.prototype.SetText = function(param) - { - if (cr.is_number(param) && param < 1e9) - param = Math.round(param * 1e10) / 1e10; // round to nearest ten billionth - hides floating point errors - var text_to_set = param.toString(); - if (this.text !== text_to_set) - { - this.text = text_to_set; - this.text_changed = true; - this.runtime.redraw = true; - } - }; - Acts.prototype.AppendText = function(param) - { - if (cr.is_number(param)) - param = Math.round(param * 1e10) / 1e10; // round to nearest ten billionth - hides floating point errors - var text_to_append = param.toString(); - if (text_to_append) // not empty - { - this.text += text_to_append; - this.text_changed = true; - this.runtime.redraw = true; - } - }; - Acts.prototype.SetFontFace = function (face_, style_) - { - var newstyle = ""; - switch (style_) { - case 1: newstyle = "bold"; break; - case 2: newstyle = "italic"; break; - case 3: newstyle = "bold italic"; break; - } - if (face_ === this.facename && newstyle === this.fontstyle) - return; // no change - this.facename = face_; - this.fontstyle = newstyle; - this.updateFont(); - }; - Acts.prototype.SetFontSize = function (size_) - { - if (this.ptSize === size_) - return; - this.ptSize = size_; - this.pxHeight = Math.ceil((this.ptSize / 72.0) * 96.0) + 4; // assume 96dpi... - this.updateFont(); - }; - Acts.prototype.SetFontColor = function (rgb) - { - var newcolor = "rgb(" + cr.GetRValue(rgb).toString() + "," + cr.GetGValue(rgb).toString() + "," + cr.GetBValue(rgb).toString() + ")"; - if (newcolor === this.color) - return; - this.color = newcolor; - this.need_text_redraw = true; - this.runtime.redraw = true; - }; - Acts.prototype.SetWebFont = function (familyname_, cssurl_) - { - if (this.runtime.isDomFree) - { - cr.logexport("[Construct 2] Text plugin: 'Set web font' not supported on this platform - the action has been ignored"); - return; // DC todo - } - var self = this; - var refreshFunc = (function () { - self.runtime.redraw = true; - self.text_changed = true; - }); - if (requestedWebFonts.hasOwnProperty(cssurl_)) - { - var newfacename = "'" + familyname_ + "'"; - if (this.facename === newfacename) - return; // no change - this.facename = newfacename; - this.updateFont(); - for (var i = 1; i < 10; i++) - { - setTimeout(refreshFunc, i * 100); - setTimeout(refreshFunc, i * 1000); - } - return; - } - var wf = document.createElement("link"); - wf.href = cssurl_; - wf.rel = "stylesheet"; - wf.type = "text/css"; - wf.onload = refreshFunc; - document.getElementsByTagName('head')[0].appendChild(wf); - requestedWebFonts[cssurl_] = true; - this.facename = "'" + familyname_ + "'"; - this.updateFont(); - for (var i = 1; i < 10; i++) - { - setTimeout(refreshFunc, i * 100); - setTimeout(refreshFunc, i * 1000); - } -; - }; - Acts.prototype.SetEffect = function (effect) - { - this.blend_mode = effect; - this.compositeOp = cr.effectToCompositeOp(effect); - cr.setGLBlend(this, effect, this.runtime.gl); - this.runtime.redraw = true; - }; - pluginProto.acts = new Acts(); - function Exps() {}; - Exps.prototype.Text = function(ret) - { - ret.set_string(this.text); - }; - Exps.prototype.FaceName = function (ret) - { - ret.set_string(this.facename); - }; - Exps.prototype.FaceSize = function (ret) - { - ret.set_int(this.ptSize); - }; - Exps.prototype.TextWidth = function (ret) - { - var w = 0; - var i, len, x; - for (i = 0, len = this.lines.length; i < len; i++) - { - x = this.lines[i].width; - if (w < x) - w = x; - } - ret.set_int(w); - }; - Exps.prototype.TextHeight = function (ret) - { - ret.set_int(this.lines.length * (this.pxHeight + this.line_height_offset) - this.line_height_offset); - }; - pluginProto.exps = new Exps(); -}()); -; -; cr.plugins_.Touch = function(runtime) { this.runtime = runtime; @@ -24699,1441 +24328,104 @@ cr.behaviors.Sin = function(runtime) }; behaviorProto.exps = new Exps(); }()); -; -; -function trim (str) { - return str.replace(/^\s\s*/, '').replace(/\s\s*$/, ''); -} -cr.behaviors.lunarray_Tween = function(runtime) -{ - this.runtime = runtime; -}; -(function () -{ - var behaviorProto = cr.behaviors.lunarray_Tween.prototype; - behaviorProto.Type = function(behavior, objtype) - { - this.behavior = behavior; - this.objtype = objtype; - this.runtime = behavior.runtime; - }; - var behtypeProto = behaviorProto.Type.prototype; - behtypeProto.onCreate = function() - { - }; - behaviorProto.Instance = function(type, inst) - { - this.type = type; - this.behavior = type.behavior; - this.inst = inst; // associated object instance to modify - this.runtime = type.runtime; - this.i = 0; // progress - }; - var behinstProto = behaviorProto.Instance.prototype; - behinstProto.groupUpdateProgress = function(v) - { - if (v > 1) v = 1; - if (cr.lunarray_tweenProgress[this.group] = -1) cr.lunarray_tweenProgress[this.group] = v; - if (cr.lunarray_tweenProgress[this.group] >= v) cr.lunarray_tweenProgress[this.group] = v; - } - behinstProto.groupSync = function() - { - if (this.group != "") { - if (typeof cr.lunarray_tweenGroup === "undefined") { - cr.lunarray_tweenGroup = {}; - cr.lunarray_tweenProgress = {}; - } - if (typeof cr.lunarray_tweenGroup[this.group] === "undefined") { - cr.lunarray_tweenGroup[this.group] = []; - cr.lunarray_tweenProgress[this.group] = -1; - } - if (cr.lunarray_tweenGroup[this.group].indexOf(this) == -1) { - cr.lunarray_tweenGroup[this.group].push(this); - } - } - } - behinstProto.saveState = function() - { - this.tweenSaveWidth = this.inst.width; - this.tweenSaveHeight = this.inst.height; - this.tweenSaveAngle = this.inst.angle; - this.tweenSaveOpacity = this.inst.opacity; - this.tweenSaveX = this.inst.x; - this.tweenSaveY = this.inst.y; - this.tweenSaveValue = this.value; - } - behinstProto.onCreate = function() - { - this.active = (this.properties[0] === 1); - this.tweened = this.properties[1]; // 0=Position|1=Size|2=Width|3=Height|4=Angle|5=Opacity|6=Value only|7=Pixel Size - this.easing = this.properties[2]; - this.initial = this.properties[3]; - this.target = this.properties[4]; - this.duration = this.properties[5]; - this.wait = this.properties[6]; - this.playmode = this.properties[7]; //0=Play Once|1=Repeat|2=Ping Pong|3=Play once and destroy|4=Loop|5=Ping Pong Stop|6=Play and stop - this.value = this.properties[8]; - this.coord_mode = this.properties[9]; //0=Absolute|1=Relative - this.forceInit = (this.properties[10] === 1); - this.group = this.properties[11]; - this.targetObject = null; - this.pingpongCounter = 0; - if (this.playmode == 5) this.pingpongCounter = 1; - this.groupSync(); - this.isPaused = false; - this.initialX = this.inst.x; - this.initialY = this.inst.y; - this.targetX = parseFloat(this.target.split(",")[0]); - this.targetY = parseFloat(this.target.split(",")[1]); - this.saveState(); - this.tweenInitialX = 0; - this.tweenInitialY = 0; - this.tweenTargetX = 0; - this.tweenTargetY = 0; - this.tweenTargetAngle = 0; - this.ratio = this.inst.height / this.inst.width; - this.reverse = false; - this.rewindMode = false; - this.doTweenX = true; - this.doTweenY = true; - this.loop = false; - this.initiating = 0; - this.cooldown = 0; - this.lastPlayMode = this.playmode; - this.lastKnownValue = this.tweenInitialX; - this.lastKnownX = this.tweenInitialX; - this.lastKnownY = this.tweenInitialY; - if (this.forceInit) this.init(); - if (this.initial == "") this.initial = "current"; - this.onStarted = false; - this.onStartedDone = false; - this.onWaitEnd = false; - this.onWaitEndDone = false; - this.onEnd = false; - this.onEndDone = false; - this.onCooldown = false; - this.onCooldownDone = false; - if (this.active) { - this.init(); - } - }; - behinstProto.init = function () - { - this.onStarted = false; - if (this.initial === "") this.initial = "current"; - if (this.target === "") this.target = "current"; - var isCurrent = (this.initial === "current"); - var targetIsCurrent = (this.target === "current"); - var isTargettingObject = (this.target === "OBJ"); - if (this.target === "OBJ") { - if (this.targetObject != null) { - if (this.tweened == 0) { - if (this.coord_mode == 1) //relative mode - this.target = (this.targetObject.x-this.inst.x) + "," + (this.targetObject.y-this.inst.y); - else //absolute mode - this.target = (this.targetObject.x) + "," + (this.targetObject.y); - } else if ((this.tweened == 1) || (this.tweened == 2) || (this.tweened == 3) || (this.tweened == 7)) { - if (this.coord_mode == 1) { //relative mode - this.target = ((this.tweened==2)?1:(this.targetObject.width)) + "," + ((this.tweened==3)?1:(this.targetObject.height)); - } else { - this.target = ((this.tweened==2)?1:(this.targetObject.width/this.tweenSaveWidth)) + "," + ((this.tweened==3)?1:(this.targetObject.height/this.tweenSaveHeight)); - } - } else if (this.tweened == 4) { - if (this.coord_mode == 1) //relative mode - this.target = cr.to_degrees(this.targetObject.angle-this.inst.angle) + ""; - else //absolute mode - this.target = cr.to_degrees(this.targetObject.angle) + ""; - } else if (this.tweened == 5) { - if (this.coord_mode == 1) //relative mode - this.target = ((this.targetObject.opacity-this.inst.opacity)*100) + ""; - else //absolute mode - this.target = (this.targetObject.opacity*100) + ""; - } - } - } - if (this.tweened == 0) { - if (targetIsCurrent) this.target = this.inst.x + "," + this.inst.y; - if (!isCurrent) { - if (!this.reverse) { - if (this.playmode != 1) { - this.inst.x = parseFloat(this.initial.split(",")[0]); - this.inst.y = parseFloat(this.initial.split(",")[1]); - } - } - } else { - if (this.coord_mode == 1) { - this.initial = this.inst.x + "," + this.inst.y; - } else { - this.initial = this.tweenSaveX + "," + this.tweenSaveY; - } - } - if (this.coord_mode == 1) { - if (this.loop) { - this.inst.x = this.tweenSaveX; - this.inst.y = this.tweenSaveY; - } - this.initialX = this.inst.x; - this.initialY = this.inst.y; - if (!this.reverse) { - this.targetX = parseFloat(this.target.split(",")[0]); - this.targetY = parseFloat(this.target.split(",")[1]); - } else { - this.targetX = -parseFloat(this.target.split(",")[0]); - this.targetY = -parseFloat(this.target.split(",")[1]); - } - this.tweenInitialX = this.initialX; - this.tweenInitialY = this.initialY; - this.tweenTargetX = this.tweenInitialX + this.targetX; - this.tweenTargetY = this.tweenInitialY + this.targetY; - } else { - if (!this.reverse) { - this.inst.x = this.tweenSaveX; - this.inst.y = this.tweenSaveY; - this.targetX = parseFloat(this.target.split(",")[0]); - this.targetY = parseFloat(this.target.split(",")[1]); - } else { - this.inst.x = parseFloat(this.target.split(",")[0]); - this.inst.y = parseFloat(this.target.split(",")[1]); - this.targetX = this.tweenSaveX; - this.targetY = this.tweenSaveY; - } - this.initialX = this.inst.x; - this.initialY = this.inst.y; - this.tweenInitialX = this.initialX; - this.tweenInitialY = this.initialY; - this.tweenTargetX = this.targetX; - this.tweenTargetY = this.targetY; - if (this.playmode == -6) { - this.tweenTargetX = this.tweenSaveX; - this.tweenTargetY = this.tweenSaveY; - } - } - } else if ((this.tweened == 1) || (this.tweened == 2) || (this.tweened == 3)) { - if (targetIsCurrent) this.target = "1,1"; - if (this.initial == "current") this.initial = "1,1"; - this.initial = "" + this.initial; - this.target = "" + this.target; - if (this.tweened == 2) { - if (this.initial.indexOf(',') == -1) this.initial = parseFloat(this.initial) + ",1"; - if (this.target.indexOf(',') == -1) this.target = parseFloat(this.target) + ",1"; - } else if (this.tweened == 3) { - if (this.initial.indexOf(',') == -1) this.initial = "1," + parseFloat(this.initial); - if (this.target.indexOf(',') == -1) this.target = "1," + parseFloat(this.target); - } else { - if (this.initial.indexOf(',') == -1) this.initial = parseFloat(this.initial) + "," + parseFloat(this.initial); - if (this.target.indexOf(',') == -1) this.target = parseFloat(this.target) + "," + parseFloat(this.target); - } - var ix = parseFloat(this.initial.split(",")[0]); - var iy = parseFloat(this.initial.split(",")[1]); - this.doTweenX = true; - var tx = parseFloat(this.target.split(",")[0]); - if ((tx == 0) || (isNaN(tx))) this.doTweenX = false; - if (this.tweened == 3) this.doTweenX = false; - this.doTweenY = true; - var ty = parseFloat(this.target.split(",")[1]); - if ((ty == 0) || (isNaN(ty))) this.doTweenY = false; - if (this.tweened == 2) this.doTweenY = false; - if (this.coord_mode == 1) { - if (this.loop) { - this.inst.width = this.tweenSaveWidth; - this.inst.height = this.tweenSaveHeight; - } - if (!isCurrent) { - if (!this.reverse) { - this.inst.width = this.inst.width * ix; - this.inst.height = this.inst.height * iy; - } else { - this.inst.width = this.inst.width * tx; - this.inst.height = this.inst.height * ty; - } - } - this.initialX = this.inst.width; - this.initialY = this.inst.height; - this.tweenInitialX = this.initialX; - this.tweenInitialY = this.initialY; - if (!this.reverse) { - this.targetX = this.initialX * tx; - this.targetY = this.initialY * ty; - } else { - this.targetX = this.initialX * ix/tx; - this.targetY = this.initialY * iy/ty; - } - this.tweenTargetX = this.targetX; - this.tweenTargetY = this.targetY; - } else { - if (!isCurrent) { - if (!this.reverse) { - this.inst.width = this.tweenSaveWidth * ix; - this.inst.height = this.tweenSaveHeight * iy; - } else { - this.inst.width = this.tweenSaveWidth * tx; - this.inst.height = this.tweenSaveHeight * ty; - } - } - this.initialX = this.inst.width; - this.initialY = this.inst.height; - this.tweenInitialX = this.initialX; - this.tweenInitialY = this.initialY; - if (!this.reverse) { - this.targetX = this.tweenSaveWidth * tx; - this.targetY = this.tweenSaveHeight * ty; - } else { - this.targetX = this.tweenSaveWidth * ix; - this.targetY = this.tweenSaveHeight * iy; - } - this.tweenTargetX = this.targetX; - this.tweenTargetY = this.targetY; - } - if (this.playmode == -6) { - this.tweenTargetX = this.tweenSaveWidth * ix; - this.tweenTargetY = this.tweenSaveHeight * iy; - } - } else if (this.tweened == 4) { - if (targetIsCurrent) this.target = cr.to_degrees(this.inst.angle); - if (this.initial != "current") { - if (!this.reverse) { - if (this.playmode != 1) { //if repeat, don't initialize - this.inst.angle = cr.to_radians(parseFloat(this.initial.split(",")[0])); - } - } - } - if (this.coord_mode == 1) { - if (this.loop) { - this.inst.angle = this.tweenSaveAngle; - } - this.initialX = this.inst.angle; - if (this.reverse) { - this.targetX = this.inst.angle - cr.to_radians(parseFloat(this.target.split(",")[0])); - } else { - this.targetX = this.inst.angle + cr.to_radians(parseFloat(this.target.split(",")[0])); - } - this.tweenInitialX = this.initialX; - this.tweenTargetX = cr.to_degrees(this.targetX); - } else { - if (this.reverse) { - this.inst.angle = cr.to_radians(parseFloat(this.target.split(",")[0]));; - this.initialX = this.inst.angle; - this.targetX = this.tweenSaveAngle; - this.tweenInitialX = this.initialX; - this.tweenTargetX = cr.to_degrees(this.targetX); - } else { - this.inst.angle = this.tweenSaveAngle; - this.initialX = this.inst.angle; - this.targetX = cr.to_radians(parseFloat(this.target.split(",")[0])); - this.tweenInitialX = this.initialX; - this.tweenTargetX = cr.to_degrees(this.targetX); - } - } - if (this.playmode == -6) { - this.tweenTargetX = cr.to_degrees(this.tweenSaveAngle); - } - this.tweenTargetAngle = cr.to_radians(this.tweenTargetX); - } else if (this.tweened == 5) { - if (this.initial == "current") this.initial = this.inst.opacity; - if (targetIsCurrent) this.target = ""+this.inst.opacity; - if (!isCurrent) { - if (!this.reverse) { - if (this.playmode != 1) { //if repeat, don't initialize - this.inst.opacity = parseFloat(this.initial.split(",")[0]) / 100; - } - } - } - if (this.coord_mode == 1) { - if (this.loop) { - this.inst.opacity = this.tweenSaveOpacity; - } - this.initialX = this.inst.opacity; - this.tweenInitialX = this.initialX; - if (!this.reverse) { - this.targetX = parseFloat(this.target.split(",")[0]) / 100; - } else { - this.targetX = -parseFloat(this.target.split(",")[0]) / 100; - } - this.tweenTargetX = this.tweenInitialX + this.targetX; - } else { - this.initialX = this.inst.opacity; - if (!this.reverse) { - this.tweenInitialX = this.initialX; - this.targetX = parseFloat(this.target.split(",")[0]) / 100; - } else { - this.tweenInitialX = parseFloat(this.target.split(",")[0]) / 100; - this.targetX = parseFloat(this.initial.split(",")[0]) / 100; - } - this.tweenTargetX = this.targetX; - } - if (this.playmode == -6) { - this.tweenTargetX = this.tweenSaveOpacity; - } - } else if (this.tweened == 6) { - if (isNaN(this.value)) this.value = 0; - if (this.initial == "current") this.initial = ""+this.value; - if (targetIsCurrent) this.target = ""+this.value; - if (!isCurrent) { - if (!this.reverse) { - if (this.playmode != 1) { //if repeat, don't initialize - this.value = parseFloat(this.initial.split(",")[0]); - } - } - } - if (this.coord_mode == 1) { - if (this.loop) { - this.value = this.tweenSaveValue; - } - if (!isCurrent) { - if (!this.reverse) { - this.value = parseFloat(this.initial.split(",")[0]); - } else { - this.value = parseFloat(this.target.split(",")[0]); - } - } - this.initialX = this.value; - if (!this.reverse) { - this.targetX = this.initialX + parseFloat(this.target.split(",")[0]); - } else { - this.targetX = this.initialX - parseFloat(this.target.split(",")[0]); - } - this.tweenInitialX = this.initialX; - this.tweenTargetX = this.targetX; - } else { - if (!isCurrent) { - if (!this.reverse) { - this.value = parseFloat(this.initial.split(",")[0]); - } else { - this.value = parseFloat(this.target.split(",")[0]); - } - } - this.initialX = this.value; - if (!this.reverse) { - this.targetX = parseFloat(this.target.split(",")[0]); - } else { - this.targetX = parseFloat(this.initial.split(",")[0]); - } - this.tweenInitialX = this.initialX; - this.tweenTargetX = this.targetX; - } - if (this.playmode == -6) { - this.tweenTargetX = this.tweenSaveValue; - } - } else if (this.tweened == 7) { - if (targetIsCurrent) this.target = this.inst.width + "," + this.inst.height; - if (this.initial != "current") { - if (!this.reverse) { - if (this.playmode != 1) { //if repeat, don't initialize - this.inst.width = parseFloat(this.initial.split(",")[0]); - this.inst.height = parseFloat(this.initial.split(",")[1]); - } - } - } - this.doTweenX = true; - var tx = parseFloat(this.target.split(",")[0]); - if ((tx < 0) || (isNaN(tx))) this.doTweenX = false; - this.doTweenY = true; - var ty = parseFloat(this.target.split(",")[1]); - if ((ty < 0) || (isNaN(ty))) this.doTweenY = false; - if (this.coord_mode == 1) { - if (this.loop) { - this.inst.width = this.tweenSaveWidth; - this.inst.height = this.tweenSaveHeight; - } - this.initialX = this.inst.width; - this.initialY = this.inst.height; - if (!this.reverse) { - this.targetX = this.initialX + parseFloat(this.target.split(",")[0]); - this.targetY = this.initialY + parseFloat(this.target.split(",")[1]); - } else { - this.targetX = this.initialX - parseFloat(this.target.split(",")[0]); - this.targetY = this.initialY - parseFloat(this.target.split(",")[1]); - } - this.tweenInitialX = this.initialX; - this.tweenInitialY = this.initialY; - this.tweenTargetX = this.targetX; - this.tweenTargetY = this.targetY; - } else { - if (!isCurrent) { - if (!this.reverse) { - this.inst.width = this.tweenSaveWidth; - this.inst.height = this.tweenSaveHeight; - } else { - this.inst.width = parseFloat(this.target.split(",")[0]); - this.inst.height = parseFloat(this.target.split(",")[1]); - } - } - this.initialX = this.inst.width; - this.initialY = this.inst.height; - if (!this.reverse) { - this.targetX = parseFloat(this.target.split(",")[0]); - this.targetY = parseFloat(this.target.split(",")[1]); - } else { - this.targetX = this.tweenSaveWidth; - this.targetY = this.tweenSaveHeight; - } - this.tweenInitialX = this.initialX; - this.tweenInitialY = this.initialY; - this.tweenTargetX = this.targetX; - this.tweenTargetY = this.targetY; - } - if (this.playmode == -6) { - this.tweenTargetX = this.tweenSaveWidth; - this.tweenTargetY = this.tweenSaveHeight; - } - } else { -; - } - this.lastKnownValue = this.tweenInitialX; - this.lastKnownX = this.tweenInitialX; - this.lastKnownY = this.tweenInitialY; - this.initiating = parseFloat(this.wait.split(",")[0]); - this.cooldown = parseFloat(this.wait.split(",")[1]); - if ((this.initiating < 0) || (isNaN(this.initiating))) this.initiating = 0; - if ((this.cooldown < 0) || (isNaN(this.cooldown))) this.cooldown = 0; - if (isCurrent) this.initial = "current"; - if (targetIsCurrent) this.target = "current"; - if (isTargettingObject) this.target = "OBJ"; - }; - function easeOutBounce(t,b,c,d) { - if ((t/=d) < (1/2.75)) { - return c*(7.5625*t*t) + b; - } else if (t < (2/2.75)) { - return c*(7.5625*(t-=(1.5/2.75))*t + .75) + b; - } else if (t < (2.5/2.75)) { - return c*(7.5625*(t-=(2.25/2.75))*t + .9375) + b; - } else { - return c*(7.5625*(t-=(2.625/2.75))*t + .984375) + b; - } - } - behinstProto.easeFunc = function (t, b, c, d) - { - switch (this.easing) { - case 0: // linear - return c*t/d + b; - case 1: // easeInQuad - return c*(t/=d)*t + b; - case 2: // easeOutQuad - return -c *(t/=d)*(t-2) + b; - case 3: // easeInOutQuad - if ((t/=d/2) < 1) return c/2*t*t + b; - return -c/2 * ((--t)*(t-2) - 1) + b; - case 4: // easeInCubic - return c*(t/=d)*t*t + b; - case 5: // easeOutCubic - return c*((t=t/d-1)*t*t + 1) + b; - case 6: // easeInOutCubic - if ((t/=d/2) < 1) - return c/2*t*t*t + b; - return c/2*((t-=2)*t*t + 2) + b; - case 7: // easeInQuart - return c*(t/=d)*t*t*t + b; - case 8: // easeOutQuart - return -c * ((t=t/d-1)*t*t*t - 1) + b; - case 9: // easeInOutQuart - if ((t/=d/2) < 1) return c/2*t*t*t*t + b; - return -c/2 * ((t-=2)*t*t*t - 2) + b; - case 10: // easeInQuint - return c*(t/=d)*t*t*t*t + b; - case 11: // easeOutQuint - return c*((t=t/d-1)*t*t*t*t + 1) + b; - case 12: // easeInOutQuint - if ((t/=d/2) < 1) return c/2*t*t*t*t*t + b; - return c/2*((t-=2)*t*t*t*t + 2) + b; - case 13: // easeInCircle - return -c * (Math.sqrt(1 - (t/=d)*t) - 1) + b; - case 14: // easeOutCircle - return c * Math.sqrt(1 - (t=t/d-1)*t) + b; - case 15: // easeInOutCircle - if ((t/=d/2) < 1) return -c/2 * (Math.sqrt(1 - t*t) - 1) + b; - return c/2 * (Math.sqrt(1 - (t-=2)*t) + 1) + b; - case 16: // easeInBack - var s = 0; - if (s==0) s = 1.70158; - return c*(t/=d)*t*((s+1)*t - s) + b; - case 17: // easeOutBack - var s = 0; - if (s==0) s = 1.70158; - return c*((t=t/d-1)*t*((s+1)*t + s) + 1) + b; - case 18: // easeInOutBack - var s = 0; - if (s==0) s = 1.70158; - if ((t/=d/2) < 1) return c/2*(t*t*(((s*=(1.525))+1)*t - s)) + b; - return c/2*((t-=2)*t*(((s*=(1.525))+1)*t + s) + 2) + b; - case 19: //easeInElastic - var a = 0; - var p = 0; - if (t==0) return b; if ((t/=d)==1) return b+c; if (p==0) p=d*.3; - if (a==0 || a < Math.abs(c)) { a=c; var s=p/4; } - else var s = p/(2*Math.PI) * Math.asin (c/a); - return -(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b; - case 20: //easeOutElastic - var a = 0; - var p = 0; - if (t==0) return b; if ((t/=d)==1) return b+c; if (p == 0) p=d*.3; - if (a==0 || a < Math.abs(c)) { a=c; var s=p/4; } - else var s = p/(2*Math.PI) * Math.asin (c/a); - return (a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b); - case 21: //easeInOutElastic - var a = 0; - var p = 0; - if (t==0) return b; - if ((t/=d/2)==2) return b+c; - if (p==0) p=d*(.3*1.5); - if (a==0 || a < Math.abs(c)) { a=c; var s=p/4; } - else var s = p/(2*Math.PI) * Math.asin (c/a); - if (t < 1) return -.5*(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b; - return a*Math.pow(2,-10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )*.5 + c + b; - case 22: //easeInBounce - return c - easeOutBounce(d-t, 0, c, d) + b; - case 23: //easeOutBounce - return easeOutBounce(t,b,c,d); - case 24: //easeInOutBounce - if (t < d/2) return (c - easeOutBounce(d-(t*2), 0, c, d) + b) * 0.5 +b; - else return easeOutBounce(t*2-d, 0, c, d) * .5 + c*.5 + b; - case 25: //easeInSmoothstep - var mt = (t/d) / 2; - return (2*(mt * mt * (3 - 2*mt))); - case 26: //easeOutSmoothstep - var mt = ((t/d) + 1) / 2; - return ((2*(mt * mt * (3 - 2*mt))) - 1); - case 27: //easeInOutSmoothstep - var mt = (t / d); - return (mt * mt * (3 - 2*mt)); - }; - return 0; - }; - behinstProto.saveToJSON = function () - { - return { - "i": this.i, - "active": this.active, - "tweened": this.tweened, - "easing": this.easing, - "initial": this.initial, - "target": this.target, - "duration": this.duration, - "wait": this.wait, - "playmode": this.playmode, - "value": this.value, - "coord_mode": this.coord_mode, - "forceInit": this.forceInit, - "group": this.group, - "targetObject": this.targetObject, - "pingpongCounter": this.pingpongCounter, - "isPaused": this.isPaused, - "initialX": this.initialX, - "initialY": this.initialY, - "targetX": this.targetX, - "targetY": this.targetY, - "tweenSaveWidth": this.tweenSaveWidth, - "tweenSaveHeight": this.tweenSaveHeight, - "tweenSaveAngle": this.tweenSaveAngle, - "tweenSaveX": this.tweenSaveX, - "tweenSaveY": this.tweenSaveY, - "tweenSaveValue": this.tweenSaveValue, - "tweenInitialX": this.tweenInitialX, - "tweenInitialY": this.tweenInitialY, - "tweenTargetX": this.tweenTargetX, - "tweenTargetY": this.tweenTargetY, - "tweenTargetAngle": this.tweenTargetAngle, - "ratio": this.ratio, - "reverse": this.reverse, - "rewindMode": this.rewindMode, - "doTweenX": this.doTweenX, - "doTweenY": this.doTweenY, - "loop": this.loop, - "initiating": this.initiating, - "cooldown": this.cooldown, - "lastPlayMode": this.lastPlayMode, - "lastKnownValue": this.lastKnownValue, - "lastKnownX": this.lastKnownX, - "lastKnownY": this.lastKnownY, - "onStarted": this.onStarted, - "onStartedDone": this.onStartedDone, - "onWaitEnd": this.onWaitEnd, - "onWaitEndDone": this.onWaitEndDone, - "onEnd": this.onEnd, - "onEndDone": this.onEndDone, - "onCooldown": this.onCooldown, - "onCooldownDone": this.onCooldownDone - }; - }; - behinstProto.loadFromJSON = function (o) - { - this.i = o["i"]; - this.active = o["active"]; - this.tweened = o["tweened"]; - this.easing = o["easing"]; - this.initial = o["initial"]; - this.target = o["target"]; - this.duration = o["duration"]; - this.wait = o["wait"]; - this.playmode = o["playmode"]; - this.value = o["value"]; - this.coord_mode = o["coord_mode"]; - this.forceInit = o["forceInit"]; - this.group = o["group"]; - this.targetObject = o["targetObject"]; - this.pingpongCounter = o["pingpongCounter"]; - this.isPaused = o["isPaused"]; - this.initialX = o["initialX"]; - this.initialY = o["initialY"]; - this.targetX = o["targetX"]; - this.targetY = o["targetY"]; - this.tweenSaveWidth = o["tweenSaveWidth"]; - this.tweenSaveHeight = o["tweenSaveHeight"]; - this.tweenSaveAngle = o["tweenSaveAngle"]; - this.tweenSaveX = o["tweenSaveX"]; - this.tweenSaveY = o["tweenSaveY"]; - this.tweenSaveValue = o["tweenSaveValue"]; - this.tweenInitialX = o["tweenInitialX"]; - this.tweenInitialY = o["tweenInitialY"]; - this.tweenTargetX = o["tweenTargetX"]; - this.tweenTargetY = o["tweenTargetY"]; - this.tweenTargetAngle = o["tweenTargetAngle"]; - this.ratio = o["ratio"]; - this.reverse = o["reverse"]; - this.rewindMode = o["rewindMode"]; - this.doTweenX = o["doTweenX"]; - this.doTweenY = o["doTweenY"]; - this.loop = o["loop"]; - this.initiating = o["initiating"]; - this.cooldown = o["cooldown"]; - this.lastPlayMode = o["lastPlayMode"]; - this.lastKnownValue = o["lastKnownValue"]; - this.lastKnownX = o["lastKnownX"]; - this.lastKnownY = o["lastKnownY"]; - this.onStarted = o["onStarted"]; - this.onStartedDone = o["onStartedDone"]; - this.onWaitEnd = o["onWaitEnd"]; - this.onWaitEndDone = o["onWaitEndDone"] - this.onEnd = o["onEnd"]; - this.onEndDone = o["onEndDone"]; - this.onCooldown = o["onCooldown"]; - this.onCooldownDone = o["onCooldownDone"]; - this.groupSync(); - }; - behinstProto.tick = function () - { - var dt = this.runtime.getDt(this.inst); - var isForceStop = (this.i == -1); - if (!this.active || dt === 0) - return; - if (this.i == 0) { - if (!this.onStarted) { - this.onStarted = true; - this.onStartedDone = false; - this.onWaitEnd = false; - this.onWaitEndDone = false; - this.onEnd = false; - this.onEndDone = false; - this.onCooldown = false; - this.onCooldownDone = false; - this.runtime.trigger(cr.behaviors.lunarray_Tween.prototype.cnds.OnStart, this.inst); - this.onStartedDone = true; - } - } - if (this.i == -1) { - this.i = this.initiating + this.duration + this.cooldown; - } else { - this.i += dt; - } - if (this.i <= this.initiating) { - return; - } else { - if (this.onWaitEnd == false) { - this.onWaitEnd = true; - this.runtime.trigger(cr.behaviors.lunarray_Tween.prototype.cnds.OnWaitEnd, this.inst); - this.onWaitEndDone = true; - } - } - if (this.i <= (this.duration + this.initiating)) { - var factor = this.easeFunc(this.i-this.initiating, 0, 1, this.duration); - if (this.tweened == 0) { - if (this.coord_mode == 1) { - if (this.inst.x !== this.lastKnownX) { - this.tweenInitialX += (this.inst.x - this.lastKnownX); - this.tweenTargetX += (this.inst.x - this.lastKnownX); - } - if (this.inst.y !== this.lastKnownY) { - this.tweenInitialY += (this.inst.y - this.lastKnownY); - this.tweenTargetY += (this.inst.y - this.lastKnownY); - } - } else { - if (this.inst.x !== this.lastKnownX) - this.tweenInitialX += (this.inst.x - this.lastKnownX); - if (this.inst.y !== this.lastKnownY) - this.tweenInitialY += (this.inst.y - this.lastKnownY); - } - this.inst.x = this.tweenInitialX + (this.tweenTargetX - this.tweenInitialX) * factor; - this.inst.y = this.tweenInitialY + (this.tweenTargetY - this.tweenInitialY) * factor; - this.lastKnownX = this.inst.x; - this.lastKnownY = this.inst.y; - } else if ((this.tweened == 1) || (this.tweened == 2) || (this.tweened == 3)) { - if (this.inst.width !== this.lastKnownX) - this.tweenInitialX = this.inst.width; - if (this.inst.height !== this.lastKnownY) - this.tweenInitialY = this.inst.height; - if (this.doTweenX) { - this.inst.width = this.tweenInitialX + (this.tweenTargetX - this.tweenInitialX) * factor; - } - if (this.doTweenY) { - this.inst.height = this.tweenInitialY + (this.tweenTargetY - this.tweenInitialY) * factor; - } else { - if (this.tweened == 1) { - this.inst.height = this.inst.width * this.ratio; - } - } - this.lastKnownX = this.inst.width; - this.lastKnownY = this.inst.height; - } else if (this.tweened == 4) { - var tangle = this.tweenInitialX + (this.tweenTargetAngle - this.tweenInitialX) * factor; - if (this.i >= (this.duration + this.initiating)) - tangle = this.tweenTargetAngle; - this.inst.angle = cr.clamp_angle(tangle); - } else if (this.tweened == 5) { - if (this.coord_mode == 1) { - if (this.inst.opacity !== this.lastKnownX) - this.tweenInitialX = this.inst.opacity; - } - this.inst.opacity = this.tweenInitialX + (this.tweenTargetX - this.tweenInitialX) * factor; - this.lastKnownX = this.inst.opacity; - } else if (this.tweened == 6) { - this.value = this.tweenInitialX + (this.tweenTargetX - this.tweenInitialX) * factor; - } else if (this.tweened == 7) { - if (this.coord_mode == 1) { - if (this.inst.width !== this.lastKnownX) - this.tweenInitialX = this.inst.width; - if (this.inst.height !== this.lastKnownY) - this.tweenInitialY = this.inst.height; - } - if (this.doTweenX) this.inst.width = this.tweenInitialX + (this.tweenTargetX - this.tweenInitialX) * factor; - if (this.doTweenY) this.inst.height = this.tweenInitialY + (this.tweenTargetY - this.tweenInitialY) * factor; - this.lastKnownX = this.inst.width; - this.lastKnownY = this.inst.height; - } - this.inst.set_bbox_changed(); - } - if (this.i >= this.duration + this.initiating) { - this.doEndFrame(isForceStop); - this.inst.set_bbox_changed(); - if (this.onEnd == false) { - this.onEnd = true; - this.runtime.trigger(cr.behaviors.lunarray_Tween.prototype.cnds.OnEnd, this.inst); - this.onEndDone = true; - } - }; - }; - behinstProto.doEndFrame = function (isForceStop) - { - switch (this.tweened) { - case 0: // position - this.inst.x = this.tweenTargetX; - this.inst.y = this.tweenTargetY; - break; - case 1: // size - if (this.doTweenX) this.inst.width = this.tweenTargetX; - if (this.doTweenY) { - this.inst.height = this.tweenTargetY; - } else { - this.inst.height = this.inst.width * this.ratio; - } - break; - case 2: // width - this.inst.width = this.tweenTargetX; - break; - case 3: // height - this.inst.height = this.tweenTargetY; - break; - case 4: // angle - var tangle = this.tweenTargetAngle; - this.inst.angle = cr.clamp_angle(tangle); - this.lastKnownValue = this.inst.angle; - break; - case 5: // opacity - this.inst.opacity = this.tweenTargetX; - break; - case 6: // value - this.value = this.tweenTargetX; - break; - case 7: // size - if (this.doTweenX) this.inst.width = this.tweenTargetX; - if (this.doTweenY) this.inst.height = this.tweenTargetY; - break; - } - if (this.i >= this.duration + this.initiating + this.cooldown) { - if (this.playmode == 0) { - this.active = false; - this.reverse = false; - this.i = this.duration + this.initiating + this.cooldown; - } else if (this.playmode == 1) { - this.i = 0; - this.init(); - this.active = true; - } else if (this.playmode == 2) { - if (isForceStop) { - this.reverse = false; - this.init(); - } else { - this.reverse = !this.reverse; - this.i = 0; - this.init(); - this.active = true; - } - } else if (this.playmode == 3) { - this.runtime.DestroyInstance(this.inst); - } else if (this.playmode == 4) { - this.loop = true; - this.i = 0; - this.init(); - this.active = true; - } else if (this.playmode == 5) { - if (isForceStop) { - this.reverse = false; - this.init(); - } else { - if (this.pingpongCounter <= 0) { - this.i = this.duration + this.initiating + this.cooldown; - this.active = false; - } else { - if (!this.reverse) { - this.pingpongCounter -= 1; - this.reverse = true; - this.i = 0; - this.init(); - this.active = true; - } else { - this.pingpongCounter -= 1; - this.reverse = false; - this.i = 0; - this.init(); - this.active = true; - } - } - } - } else if (this.playmode == -6) { - this.playmode = this.lastPlayMode; - this.reverse = false; - this.i = 0; - this.active = false; - } else if (this.playmode == 6) { - this.reverse = false; - this.i = this.duration + this.initiating + this.cooldown; - this.active = false; - } - } - if (this.onCooldown == false) { - this.onCooldown = true; - this.runtime.trigger(cr.behaviors.lunarray_Tween.prototype.cnds.OnCooldownEnd, this.inst); - this.onCooldownDone = true; - } - } - behaviorProto.cnds = {}; - var cnds = behaviorProto.cnds; - cnds.IsActive = function () - { - return this.active; - }; - cnds.CompareGroupProgress = function (cmp, v) - { - var x = []; - cr.lunarray_tweenGroup[this.group].forEach(function (value) { - x.push((value.i / (value.duration + value.initiating + value.cooldown))); - } ); - return cr.do_cmp( Math.min.apply(null, x), cmp, v ); - } - cnds.CompareProgress = function (cmp, v) - { - return cr.do_cmp((this.i / (this.duration + this.initiating + this.cooldown)), cmp, v); - }; - cnds.OnStart = function () - { - if (this.onStartedDone === false) { - return this.onStarted; - } - }; - cnds.OnWaitEnd = function () - { - if (this.onWaitEndDone === false) { - return this.onWaitEnd; - } - }; - cnds.OnEnd = function (a, b, c) - { - if (this.onEndDone === false) { - return this.onEnd; - } - }; - cnds.OnCooldownEnd = function () - { - if (this.onCooldownDone === false) { - return this.onCooldown; - } - }; - behaviorProto.acts = {}; - var acts = behaviorProto.acts; - acts.SetActive = function (a) - { - this.active = (a === 1); - }; - acts.StartGroup = function (force, sgroup) - { - if (sgroup === "") sgroup = this.group; - var groupReady = (force === 1) || cr.lunarray_tweenGroup[sgroup].every(function(value2) { return !value2.active; } ); - if ( groupReady ) { - cr.lunarray_tweenGroup[sgroup].forEach( - function(value) { - if (force === 1) { - acts.Force.apply(value); - } else { - acts.Start.apply(value); - } - } - ); - } - } - acts.StopGroup = function (stopmode, sgroup) - { - if (sgroup === "") sgroup = this.group; - cr.lunarray_tweenGroup[sgroup].forEach( function(value) { - acts.Stop.apply(value, [stopmode]); - } ); - } - acts.ReverseGroup = function (force, rewindMode, sgroup) - { - if (sgroup === "") sgroup = this.group; - var groupReady = (force === 1) || cr.lunarray_tweenGroup[sgroup].every(function(value2) { return !value2.active; } ); - if ( groupReady ) { - cr.lunarray_tweenGroup[sgroup].forEach( - function(value) { - if (force === 1) { - acts.ForceReverse.apply(value, [rewindMode]); - } else { - acts.Reverse.apply(value, [rewindMode]); - } - } - ); - } - } - acts.Force = function () - { - this.loop = (this.playmode === 4); - if (this.playmode == 5) this.pingpongCounter = 1; - if ((this.playmode == 6) || (this.playmode == -6)) { - if (this.i < this.duration + this.cooldown + this.initiating) { - this.reverse = false; - this.init(); - this.active = true; - } - } else { - this.reverse = false; - this.i = 0; - this.init(); - this.active = true; - } - }; - acts.ForceReverse = function (rewindMode) - { - this.rewindMode = (rewindMode == 1); - this.loop = (this.playmode === 4); - if (this.playmode == 5) this.pingpongCounter = 1; - if ((this.playmode == 6) || (this.playmode == -6)) { - if (this.i < this.duration + this.cooldown + this.initiating) { - this.reverse = true; - this.init(); - this.active = true; - } - } else { - if (rewindMode) { - if (this.pingpongCounter == 1) { - if (this.i >= this.duration + this.cooldown + this.initiating) { - this.reverse = true; - this.i = 0; - this.pingpongCounter = 2; - this.init(); - this.active = true; - } - } - } else { - this.reverse = true; - this.i = 0; - this.init(); - this.active = true; - } - } - }; - acts.Start = function () - { - if (!this.active) { - this.loop = (this.playmode === 4); - if (this.playmode == 5) this.pingpongCounter = 1; - if ((this.playmode == 6) || (this.playmode == -6)) { - if (this.i < this.duration + this.cooldown + this.initiating) { - this.reverse = false; - this.init(); - this.active = true; - } - } else { - this.pingpongCounter = 1; - this.reverse = false; - this.i = 0; - this.init(); - this.active = true; - } - } - }; - acts.Stop = function (stopmode) - { - if (this.active) { - if ((this.playmode == 2) || (this.playmode == 4)) { - if (this.reverse) { - this.i = 0; - } else { - this.i = -1; - } - } else { - if (stopmode == 1) { - this.saveState(); - } else if (stopmode == 0) { - this.i = this.initiating + this.cooldown + this.duration; - } else { - this.i = 0; - } - } - this.tick(); - this.active = false; - } - }; - acts.Pause = function () { - if (this.active) { - this.isPaused = true; - this.active = false; - } - } - acts.Resume = function () { - if (this.isPaused) { - this.active = true; - this.isPaused = false; - } else { - if (!this.active) { - this.reverse = false; - this.i = 0; - this.init(); - this.active = true; - } - } - } - acts.Reverse = function (rewindMode) - { - this.rewindMode = (rewindMode == 1); - if (!this.active) { - this.loop = (this.playmode === 4); - if (this.playmode == 5) this.pingpongCounter = 1; - if ((this.playmode == 6) || (this.playmode == -6)) { - if (this.i < this.duration + this.cooldown + this.initiating) { - this.reverse = true; - this.init(); - this.active = true; - } - } else { - if (rewindMode) { - if (this.pingpongCounter == 1) { - if (this.i >= this.duration + this.cooldown + this.initiating) { - this.reverse = true; - this.i = 0; - this.pingpongCounter = 2; - this.init(); - this.active = true; - } - } - } else { - this.reverse = true; - this.i = 0; - this.init(); - this.active = true; - } - } - } - }; - acts.SetDuration = function (x) - { - this.duration = x; - }; - acts.SetWait = function (x) - { - this.wait = x; - this.initiating = parseFloat(this.wait.split(",")[0]); - this.cooldown = parseFloat(this.wait.split(",")[1]); - if ((this.initiating < 0) || (isNaN(this.initiating))) this.initiating = 0; - if ((this.cooldown < 0) || (isNaN(this.cooldown))) this.cooldown = 0; - }; - acts.SetTarget = function (x) - { - if (typeof(x) == "string") { - this.target = x; - this.targetX = parseFloat(x.split(",")[0]); - this.targetY = parseFloat(x.split(",")[1]); - } else { - this.target = x; - this.targetX = x; - } - if (!this.active) { - this.init(); - } else { - } - }; - acts.SetTargetObject = function (obj) - { - if (!obj) - return; - var otherinst = obj.getFirstPicked(); - if (!otherinst) - return; - this.targetObject = otherinst; - this.target = "OBJ"; - }; - acts.SetTargetX = function (x) - { - if ((this.tweened == 2) || (this.tweened == 3) || (this.tweened == 4) || (this.tweened == 5) || (this.tweened == 6)) { - if (typeof(x) == "string") { - this.target = parseFloat(x.split(",")[0]); - } else { - this.target = ""+x+","+this.targetY; - } - this.targetX = this.target; - } else { - var currY = this.target.split(",")[1]; - this.target = String(x) + "," + currY; - this.targetX = parseFloat(this.target.split(",")[0]); - this.targetY = parseFloat(this.target.split(",")[1]); - } - if (!this.active) { - this.saveState(); - this.init(); - } else { - } - }; - acts.SetTargetY = function (x) - { - if ((this.tweened == 2) || (this.tweened == 3) || (this.tweened == 4) || (this.tweened == 5) || (this.tweened == 6)) { - if (typeof(x) == "string") { - this.target = parseFloat(x)+""; - } else { - this.target = this.targetX+","+x; - } - this.targetX = this.target; - } else { - var currX = this.target.split(",")[0]; - this.target = currX + "," + String(x); - this.targetX = parseFloat(this.target.split(",")[0]); - this.targetY = parseFloat(this.target.split(",")[1]); - } - if (!this.active) { - this.saveState(); - this.init(); - } else { - } - }; - acts.SetInitial = function (x) - { - if (typeof(x) == "string") { - this.initial = x; - this.initialX = parseFloat(x.split(",")[0]); - this.initialY = parseFloat(x.split(",")[1]); - } else { - this.initial = ""+x; - this.initialX = x; - } - if (this.tweened == 6) { - this.value = this.initialX; - } - if (!this.active) { - this.saveState(); - this.init(); - } else { - } - }; - acts.SetInitialX = function (x) - { - if ((this.tweened == 2) || (this.tweened == 3) || (this.tweened == 4) || (this.tweened == 5) || (this.tweened == 6)) { - if (typeof(x) == "string") { - this.initial = parseFloat(x); - } else { - this.initial = ""+x+","+this.initialY; - } - this.initialX = this.initial; - } else { - if (this.initial == "") this.initial = "current"; - if (this.initial == "current") { - var currY = this.tweenSaveY; - } else { - var currY = this.initial.split(",")[1]; - } - this.initial = String(x) + "," + currY; - this.initialX = parseFloat(this.initial.split(",")[0]); - this.initialY = parseFloat(this.initial.split(",")[1]); - } - if (this.tweened == 6) { - this.value = this.initialX; - } - if (!this.active) { - this.saveState(); - this.init(); - } else { - } - }; - acts.SetInitialY = function (x) - { - if ((this.tweened == 2) || (this.tweened == 3) || (this.tweened == 4) || (this.tweened == 5) || (this.tweened == 6)) { - if (typeof(x) == "string") { - this.initial = parseFloat(x); - } else { - this.initial = ""+this.initialX+","+x; - } - this.initialX = this.initial; - } else { - if (this.initial == "") this.initial = "current"; - if (this.initial == "current") { - var currX = this.tweenSaveX; - } else { - var currX = this.initial.split(",")[0]; - } - this.initial = currX + "," + String(x); - this.initialX = parseFloat(this.initial.split(",")[0]); - this.initialY = parseFloat(this.initial.split(",")[1]); - } - if (!this.active) { - this.saveState(); - this.init(); - } else { - } - }; - acts.SetValue = function (x) - { - this.value = x; - }; - acts.SetTweenedProperty = function (m) - { - this.tweened = m; - }; - acts.SetEasing = function (w) - { - this.easing = w; - }; - acts.SetPlayback = function (x) - { - this.playmode = x; - }; - acts.SetParameter = function (tweened, playmode, easefunction, initial, target, duration, wait, cmode) - { - this.tweened = tweened; - this.playmode = playmode; - this.easing = easefunction; - acts.SetInitial.apply(this, [initial]); - acts.SetTarget.apply(this, [target]); - acts.SetDuration.apply(this, [duration]); - acts.SetWait.apply(this, [wait]); - this.coord_mode = cmode; - this.saveState(); - }; - behaviorProto.exps = {}; - var exps = behaviorProto.exps; - exps.Progress = function (ret) - { - ret.set_float(this.i / (this.duration + this.initiating + this.cooldown)); - }; - exps.ProgressTime = function (ret) - { - ret.set_float(this.i); - }; - exps.Duration = function (ret) - { - ret.set_float(this.duration); - }; - exps.Initiating = function (ret) - { - ret.set_float(this.initiating); - }; - exps.Cooldown = function (ret) - { - ret.set_float(this.cooldown); - }; - exps.Target = function (ret) - { - ret.set_string(this.target); - }; - exps.Value = function (ret) - { - ret.set_float(this.value); - }; - exps.isPaused = function (ret) - { - ret.set_int(this.isPaused ? 1: 0); - }; -}()); cr.getObjectRefTable = function () { return [ cr.plugins_.Audio, cr.plugins_.Browser, cr.plugins_.Function, + cr.plugins_.SenaPlugin, cr.plugins_.Sprite, cr.plugins_.SpriteFontPlus, - cr.plugins_.TDVplugin, - cr.plugins_.Text, cr.plugins_.Touch, - cr.behaviors.Rex_MoveTo, cr.behaviors.Fade, cr.behaviors.DragnDrop, - cr.behaviors.Pin, + cr.behaviors.Rex_MoveTo, cr.behaviors.Sin, - cr.behaviors.lunarray_Tween, - cr.plugins_.Function.prototype.cnds.OnFunction, - cr.behaviors.Rex_MoveTo.prototype.acts.SetTargetPosByDeltaXY, + cr.behaviors.Pin, cr.system_object.prototype.cnds.OnLayoutStart, - cr.plugins_.Sprite.prototype.acts.SetVisible, + cr.plugins_.SenaPlugin.prototype.acts.Load, cr.system_object.prototype.acts.SetLayerVisible, - cr.plugins_.Browser.prototype.acts.ExecJs, - cr.behaviors.Pin.prototype.acts.Pin, - cr.system_object.prototype.acts.Wait, - cr.plugins_.Text.prototype.acts.SetText, - cr.plugins_.Browser.prototype.exps.ExecJS, - cr.plugins_.Touch.prototype.cnds.OnTouchEnd, - cr.plugins_.Audio.prototype.acts.Play, - cr.system_object.prototype.cnds.LayerVisible, - cr.behaviors.Rex_MoveTo.prototype.cnds.IsMoving, - cr.plugins_.Function.prototype.acts.CallFunction, - cr.behaviors.Rex_MoveTo.prototype.cnds.OnHitTarget, - cr.behaviors.lunarray_Tween.prototype.acts.Force, - cr.behaviors.lunarray_Tween.prototype.cnds.OnEnd, - cr.system_object.prototype.acts.GoToLayout, - cr.plugins_.TDVplugin.prototype.cnds.OnStart, - cr.system_object.prototype.acts.SetVar, - cr.plugins_.Sprite.prototype.acts.SetBoolInstanceVar, - cr.plugins_.Sprite.prototype.acts.SetInstanceVar, - cr.plugins_.Sprite.prototype.acts.SetAnimFrame, + cr.plugins_.SenaPlugin.prototype.cnds.OnLoad, + cr.plugins_.Browser.prototype.acts.ConsoleLog, + cr.plugins_.SenaPlugin.prototype.exps.getGuide, + cr.plugins_.SenaPlugin.prototype.acts.Start, + cr.plugins_.SenaPlugin.prototype.cnds.OnStart, + cr.plugins_.SenaPlugin.prototype.exps.getQuestionType, + cr.plugins_.SenaPlugin.prototype.exps.getQuestionValue, + cr.plugins_.SenaPlugin.prototype.exps.getRequestType, + cr.plugins_.SenaPlugin.prototype.exps.getRequestValue, + cr.plugins_.SenaPlugin.prototype.exps.getOptionsCount, + cr.plugins_.SenaPlugin.prototype.exps.getHintCount, cr.plugins_.Sprite.prototype.acts.Destroy, - cr.plugins_.Text.prototype.acts.Destroy, - cr.system_object.prototype.cnds.Repeat, - cr.system_object.prototype.exps.loopindex, - cr.system_object.prototype.acts.CreateObject, + cr.system_object.prototype.acts.SetVar, + cr.behaviors.Pin.prototype.acts.Pin, + cr.plugins_.Sprite.prototype.acts.SetInstanceVar, cr.plugins_.Sprite.prototype.exps.X, cr.plugins_.Sprite.prototype.exps.Y, - cr.plugins_.Sprite.prototype.exps.Width, - cr.plugins_.Text.prototype.acts.SetFontSize, - cr.system_object.prototype.cnds.Compare, - cr.system_object.prototype.cnds.Else, - cr.plugins_.Sprite.prototype.cnds.CompareInstanceVar, - cr.behaviors.DragnDrop.prototype.cnds.OnDragStart, - cr.plugins_.Sprite.prototype.acts.MoveToTop, - cr.plugins_.Sprite.prototype.cnds.IsOverlapping, - cr.plugins_.Text.prototype.acts.MoveToTop, - cr.behaviors.DragnDrop.prototype.cnds.OnDrop, - cr.plugins_.Sprite.prototype.cnds.IsBoolInstanceVarSet, cr.plugins_.Sprite.prototype.acts.SetPos, - cr.behaviors.Rex_MoveTo.prototype.acts.SetTargetPos, - cr.system_object.prototype.cnds.Every, - cr.system_object.prototype.cnds.CompareVar, - cr.system_object.prototype.cnds.EveryTick, + cr.plugins_.SenaPlugin.prototype.acts.CalcObjectPositions, + cr.system_object.prototype.exps["int"], + cr.plugins_.Sprite.prototype.exps.Width, + cr.system_object.prototype.cnds.Repeat, + cr.system_object.prototype.exps.loopindex, + cr.plugins_.SenaPlugin.prototype.exps.getHintType, + cr.plugins_.SenaPlugin.prototype.exps.getHintValue, + cr.system_object.prototype.acts.CreateObject, + cr.plugins_.SenaPlugin.prototype.exps.getPosXbyIndex, + cr.plugins_.SenaPlugin.prototype.exps.getPosYbyIndex, + cr.system_object.prototype.cnds.Compare, + cr.plugins_.Sprite.prototype.acts.SetBoolInstanceVar, + cr.plugins_.SpriteFontPlus.prototype.acts.SetText, + cr.plugins_.Sprite.prototype.acts.SetAnimFrame, + cr.system_object.prototype.cnds.Else, + cr.system_object.prototype.acts.AddVar, + cr.plugins_.Sprite.prototype.acts.SetY, + cr.plugins_.SenaPlugin.prototype.exps.getOptionsType, + cr.plugins_.SenaPlugin.prototype.exps.getOptionsValue, cr.plugins_.Touch.prototype.cnds.OnTouchObject, cr.plugins_.Sprite.prototype.cnds.IsVisible, + cr.system_object.prototype.cnds.CompareVar, + cr.plugins_.Audio.prototype.acts.Play, + cr.plugins_.SenaPlugin.prototype.acts.PauseGame, + cr.behaviors.DragnDrop.prototype.acts.SetEnabled, + cr.plugins_.Function.prototype.acts.CallFunction, + cr.system_object.prototype.acts.Wait, + cr.plugins_.SenaPlugin.prototype.cnds.OnCorrect, + cr.plugins_.SenaPlugin.prototype.cnds.OnWrong, + cr.plugins_.SenaPlugin.prototype.acts.ResumeGame, + cr.plugins_.SenaPlugin.prototype.cnds.OnPause, + cr.plugins_.SenaPlugin.prototype.cnds.OnResume, + cr.system_object.prototype.cnds.EveryTick, + cr.plugins_.SenaPlugin.prototype.exps.getTimeLimit, + cr.system_object.prototype.exps.max, + cr.plugins_.SenaPlugin.prototype.exps.getElapsedTime, cr.system_object.prototype.cnds.TriggerOnce, - cr.plugins_.SpriteFontPlus.prototype.acts.SetText, - cr.behaviors.Rex_MoveTo.prototype.acts.KENSetTargetPos, - cr.system_object.prototype.cnds.For + cr.plugins_.SpriteFontPlus.prototype.acts.Destroy, + cr.behaviors.Fade.prototype.acts.StartFade, + cr.plugins_.SenaPlugin.prototype.acts.Finish, + cr.plugins_.Function.prototype.cnds.OnFunction, + cr.system_object.prototype.cnds.For, + cr.system_object.prototype.cnds.PickByComparison, + cr.system_object.prototype.exps.left, + cr.system_object.prototype.exps.len, + cr.system_object.prototype.cnds.LayerVisible, + cr.plugins_.Sprite.prototype.cnds.CompareY, + cr.behaviors.Rex_MoveTo.prototype.acts.SetTargetPos, + cr.behaviors.Rex_MoveTo.prototype.acts.SetTargetPosOnObject, + cr.plugins_.Sprite.prototype.cnds.CompareFrame, + cr.plugins_.Audio.prototype.acts.SetSilent, + cr.plugins_.SenaPlugin.prototype.acts.PlayVoice, + cr.behaviors.DragnDrop.prototype.cnds.OnDragStart, + cr.plugins_.Sprite.prototype.cnds.CompareInstanceVar, + cr.plugins_.Sprite.prototype.cnds.IsOverlapping, + cr.plugins_.Sprite.prototype.acts.MoveToTop, + cr.plugins_.SpriteFontPlus.prototype.acts.MoveToTop, + cr.behaviors.DragnDrop.prototype.cnds.OnDrop, + cr.plugins_.Sprite.prototype.cnds.IsBoolInstanceVarSet, + cr.plugins_.Sprite.prototype.cnds.PickDistance, + cr.behaviors.Rex_MoveTo.prototype.acts.SetMaxSpeed, + cr.behaviors.DragnDrop.prototype.cnds.IsDragging, + cr.plugins_.Touch.prototype.exps.X, + cr.plugins_.Touch.prototype.exps.Y, + cr.plugins_.Sprite.prototype.acts.SetVisible ];}; diff --git a/audio_spelling_sequence_sentence/data.js b/audio_spelling_sequence_sentence/data.js new file mode 100644 index 0000000..a992daf --- /dev/null +++ b/audio_spelling_sequence_sentence/data.js @@ -0,0 +1 @@ +{"project": [null,null,[[0,true,false,false,false,false,false,false,false,false],[1,true,false,false,false,false,false,false,false,false],[2,true,false,false,false,false,false,false,false,false],[3,true,false,false,false,false,false,false,false,false],[4,false,true,true,true,true,true,true,true,false],[5,false,true,true,true,true,true,true,true,true],[6,true,false,false,false,false,false,false,false,false]],[["t0",3,false,[],0,0,null,null,[],false,false,394152958375253,[],null,["G2800S1T30"]],["t1",1,false,[],0,0,null,null,[],false,false,181015701933739,[],null,[]],["t2",4,false,[],0,0,null,[["Default",5,false,1,0,false,266653407798345,[["images/btn_check-sheet0.png",17703,0,0,165,75,1,0.5030303001403809,0.5066666603088379,[],[],0]]]],[],false,false,870372553390403,[],null],["t3",6,false,[],0,0,null,null,[],false,false,288430412484243,[],null,[1]],["t4",4,false,[],0,0,null,[["Default",5,false,1,0,false,974942116247628,[["images/pause-sheet0.png",155,0,0,250,250,1,0.5,0.5,[],[],1]]]],[],false,false,829278278494442,[],null],["t5",4,false,[],0,0,null,[["Default",5,false,1,0,false,830476950235748,[["images/pause-sheet0.png",155,0,0,250,250,1,0.5,0.5,[],[],1]]]],[],false,false,250461366236378,[],null],["t6",4,false,[839027338172447,370467464601183,403859397610033],1,0,null,[["Default",0,false,1,0,false,201845729772152,[["images/slot-sheet0.png",36041,1,1,200,75,1,0.5,0.5066666603088379,[],[],0],["images/slot-sheet0.png",36041,1,78,200,75,1,0.5,0.4933333396911621,[],[],0],["images/slot-sheet0.png",36041,1,155,200,75,1,0.4350000023841858,0.5199999809265137,[],[],0]]]],[["Fade",7,588103285968005]],false,false,530929310100717,[],null],["t7",4,false,[401281652261798,308058330719086,937883104346632,243525000976275,435711195864159],3,0,null,[["Default",5,false,1,0,false,344548683716056,[["images/slot-sheet0.png",36041,1,78,200,75,1,0.5,0.4933333396911621,[],[],0]]]],[["DragDrop",8,551257499299552],["Fade",7,430149822241515],["MoveTo",9,551694077436381]],false,false,515230787966511,[],null],["t8",2,false,[],0,0,null,null,[],false,false,825652157577718,[],null,[]],["t9",5,false,[],0,0,["images/txt_texttimer.png",94512,0],null,[],false,false,428453985749595,[],null],["t10",5,false,[],0,0,["images/txt_worditem.png",94801,0],null,[],false,false,125516006976486,[],null],["t11",5,false,[],0,0,["images/txt_texttimer.png",94512,0],null,[],false,false,680183373657896,[],null],["t12",4,false,[],0,0,null,[["Default",5,false,1,0,false,943124209669759,[["images/5sosarahtakesoff-sheet0.png",1099565,0,0,1400,900,1,0.5,0.5,[],[],1]]]],[],false,false,663734962307467,[],null],["t13",4,false,[],0,0,null,[["Default",5,false,1,0,false,174194635978617,[["images/senaaikhoi-sheet0.png",230528,0,0,1145,446,1,0.4995633065700531,0.4977578520774841,[],[],0]]]],[],false,false,577948289650662,[],null],["t14",4,false,[],0,0,null,[["Default",0,false,1,0,false,329974099612225,[["images/checker_wrong_correct-sheet0.png",10219,0,0,140,140,1,0.5,0.5,[],[-0.3642860054969788,-0.3642860054969788,0,-0.4357143044471741,0.3642860054969788,-0.3642860054969788,0.3999999761581421,0,0.3142859935760498,0.3142859935760498,0,0.442857027053833,-0.2928569912910461,0.2928569912910461,-0.3857139945030212,0],0],["images/checker_wrong_correct-sheet1.png",7978,0,0,140,140,1,0.5,0.5,[],[-0.357142984867096,-0.357142984867096,0,-0.4357143044471741,0.357142984867096,-0.357142984867096,0.3857139945030212,0,0.3642860054969788,0.3642860054969788,0,0.4142860174179077,-0.2857140004634857,0.2857139706611633,-0.3857139945030212,0],0]]]],[],false,false,246032193737445,[],null],["t15",0,false,[],0,0,null,null,[],false,false,396522085041537,[],null,[0,0,0,1,1,600,600,10000,1]],["t16",4,false,[],0,0,null,[["Default",5,false,1,0,false,857466576876240,[["images/btn_setting-sheet0.png",13202,0,0,99,91,1,0.5050504803657532,0.5054945349693298,[],[-0.3656864762306213,-0.3547005355358124,-0.006272494792938232,-0.5028490424156189,0.355585515499115,-0.3547005355358124,0.485169529914856,-0.005494534969329834,0.3604755401611328,0.349002480506897,-0.006272494792938232,0.4865684509277344,-0.3681314587593079,0.3463574647903442,-0.4977155327796936,-0.005494534969329834],0]]]],[],false,false,444899307061590,[],null],["t17",4,false,[],0,0,null,[["Default",5,false,1,0,false,922486781068681,[["images/panel-sheet0.png",340267,0,0,732,719,1,0.5,0.5006954073905945,[],[],0]]]],[],false,false,150393696478915,[],null],["t18",4,false,[637523801130517,567457434227301],1,0,null,[["Default",5,false,1,0,false,177577261579169,[["images/btn_pause-sheet0.png",11757,0,0,99,91,1,0.5050504803657532,0.5054945349693298,[],[-0.365747481584549,-0.3577375411987305,-0.005050480365753174,-0.5028560161590576,0.3556455373764038,-0.3577375411987305,0.4899744987487793,-0.006813526153564453,0.3581334948539734,0.34938645362854,-0.005050480365753174,0.4892284870147705,-0.365747481584549,0.3467484712600708,-0.4975878000259399,-0.006813526153564453],0]]]],[["MoveTo",9,345261300394347]],false,false,680660539195378,[],null],["t19",4,false,[546775332106909,966775272495183],1,0,null,[["Default",0,false,1,0,false,632596314970396,[["images/btn_music-sheet0.png",13358,0,0,99,91,1,0.5050504803657532,0.5054945349693298,[],[],0],["images/btn_music-sheet1.png",14207,0,0,99,91,1,0.5050504803657532,0.5054945349693298,[],[],0]]]],[["MoveTo",9,561713266057788]],false,false,470943728107764,[],null],["t20",4,false,[],0,0,null,[["Default",5,false,1,0,false,804798480075980,[["images/panel_pause-sheet0.png",168,0,0,250,250,1,0.5,0.5,[],[],0]]]],[],false,false,103999013142366,[],null],["t21",4,false,[],1,0,null,[["Default",5,false,1,0,false,794524614026990,[["images/layer-sheet0.png",111520,0,0,400,376,1,0.5,0.5,[],[-0.362500011920929,-0.3537229895591736,0,-0.5,0.362500011920929,-0.3537229895591736,0.497499942779541,0,0.3650000095367432,0.3563830256462097,0,0.5,-0.3650000095367432,0.3563830256462097,-0.5,0],0]]]],[["Sine",10,152768910804631]],false,false,822735679292648,[],null],["t22",4,false,[],0,0,null,[["Default",5,false,1,0,false,185281331107930,[["images/newwordpng-sheet0.png",166389,0,0,500,341,1,0.5,0.5014662742614746,[],[-0.3939999938011169,-0.3460412621498108,0,-0.4398826658725739,0.1480000019073486,0.01466274261474609,0.2919999957084656,-0.00293228030204773,0.4660000205039978,0.4486806988716126,0,0.4721407294273377,-0.4620000123977661,0.4428157210350037,-0.2820000052452087,-0.00293228030204773],0]]]],[],false,false,139959116973831,[],null],["t23",4,false,[],2,0,null,[["Default",5,false,1,0,false,567575480682286,[["images/layer2-sheet0.png",24016,0,0,277,216,1,0.5018050670623779,0.5,[],[-0.3068592250347138,-0.25,-0.003610134124755859,-0.4768518507480621,0.3465703725814819,-0.3055555522441864,0.3935018181800842,0,0.3104693293571472,0.2592592835426331,-0.003610134124755859,0.3796296119689941,-0.494584858417511,0],0]]]],[["Sine",10,756259060921862],["Pin",11,966348152795378]],false,false,269262716896460,[],null],["t24",5,true,[],1,0,null,null,[["Pin",11,693926857619114]],false,false,154178255437462,[],null],["t25",4,true,[],0,0,null,null,[],false,false,909098946188328,[],null]],[[24,11,9,10],[25,19,18,16,21]],[["Layout 1",1200,1200,false,"Event sheet 1",148229480160171,[["BG",0,977906834634586,true,[255,255,255],true,1,1,1,false,false,1,0,0,[[[600,600,0,1946.035888671875,1251.023071289063,0,0,1,0.5,0.5,0,0,[]],12,13,[],[],[0,"Default",0,1]]],[]],["Main",1,715835324311419,true,[255,255,255],true,1,1,1,false,false,1,0,0,[[[600.5625,863,0,185.6243591308594,84.37471008300781,0,0,1,0.5030303001403809,0.5066666603088379,0,0,[]],2,2,[],[],[0,"Default",0,1]],[[314,-701,0,58,49,0,0,1,0.5,0.5,0,0,[]],4,5,[],[],[0,"Default",0,1]],[[313,-632,0,58.32666778564453,58.32666778564453,0,0,1,0.5,0.5,0,0,[]],5,6,[],[],[0,"Default",0,1]],[[209,-866,0,200,75,0,0,1,0.5,0.5066666603088379,0,0,[]],6,7,[[0],[""],[0]],[[0,0,0,2,1]],[0,"Default",0,1]],[[-35,-863,0,200,75,0,0,1,0.5,0.4933333396911621,0,0,[]],7,8,[[""],[0],[0],[-1],[0]],[[0,1],[0,0,0,2,1],[1,1200,0,0]],[0,"Default",0,1]],[[668,-675,0,160.2111206054688,55.53988647460938,0,0,1,0.5,0.5,0,0,[]],10,11,[],[[]],[76,83,"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789.,;:?!-_~#\"'&()[]|`\\/@°+=*$£€<>%","Text",0.5,0,1,1,1,0,0,0,"[[34,\" \"],[14,\"|\"],[16,\"il\"],[17,\"I.:'\"],[18,\";!\"],[19,\",\"],[22,\"`\"],[24,\")\"],[25,\"(\\\\/\"],[26,\"[\"],[27,\"j]\"],[28,\"-\"],[29,\"°\"],[32,\"t1\"],[33,\"\\\"\"],[34,\"r\"],[35,\"f\"],[36,\"*\"],[39,\"s\"],[40,\"kx\"],[41,\"Jhnu\"],[42,\"v7?+=<>\"],[43,\"Faceyz0238\"],[44,\"L569_~$\"],[45,\"bdgopq\"],[46,\"P#\"],[47,\"EX\"],[48,\"S4€\"],[49,\"Y£\"],[50,\"BNR\"],[51,\"DHKTU\"],[52,\"VZ\"],[53,\"C\"],[54,\"A\"],[55,\"&\"],[56,\"GM\"],[57,\"O\"],[60,\"Q\"],[62,\"mw\"],[65,\"%\"],[72,\"W\"],[74,\"@\"]]",-1]],[[474,-928,0,160.2109985351563,55.54000091552734,0,0,1,0.5,0.5,0,0,[]],11,12,[],[[]],[76,83,"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789.,;:?!-_~#\"'&()[]|`\\/@°+=*$£€<>%","Text",0.5,0,1,1,1,0,0,0,"[[34,\" \"],[14,\"|\"],[16,\"il\"],[17,\"I.:'\"],[18,\";!\"],[19,\",\"],[22,\"`\"],[24,\")\"],[25,\"(\\\\/\"],[26,\"[\"],[27,\"j]\"],[28,\"-\"],[29,\"°\"],[32,\"t1\"],[33,\"\\\"\"],[34,\"r\"],[35,\"f\"],[36,\"*\"],[39,\"s\"],[40,\"kx\"],[41,\"Jhnu\"],[42,\"v7?+=<>\"],[43,\"Faceyz0238\"],[44,\"L569_~$\"],[45,\"bdgopq\"],[46,\"P#\"],[47,\"EX\"],[48,\"S4€\"],[49,\"Y£\"],[50,\"BNR\"],[51,\"DHKTU\"],[52,\"VZ\"],[53,\"C\"],[54,\"A\"],[55,\"&\"],[56,\"GM\"],[57,\"O\"],[60,\"Q\"],[62,\"mw\"],[65,\"%\"],[72,\"W\"],[74,\"@\"]]",-1]],[[1052,70,0,255.0779113769531,99.35787963867188,0,0,1,0.4995633065700531,0.4977578520774841,0,0,[]],13,14,[],[],[0,"Default",0,1]],[[1080,72,0,132,77,0,0,1,0.5,0.5,0,0,[]],9,10,[],[[]],[76,83,"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789.,;:?!-_~#\"'&()[]|`\\/@°+=*$£€<>%","TIME",0.7,0,1,1,1,0,0,0,"[[34,\" \"],[14,\"|\"],[16,\"il\"],[17,\"I.:'\"],[18,\";!\"],[19,\",\"],[22,\"`\"],[24,\")\"],[25,\"(\\\\/\"],[26,\"[\"],[27,\"j]\"],[28,\"-\"],[29,\"°\"],[32,\"t1\"],[33,\"\\\"\"],[34,\"r\"],[35,\"f\"],[36,\"*\"],[39,\"s\"],[40,\"kx\"],[41,\"Jhnu\"],[42,\"v7?+=<>\"],[43,\"Faceyz0238\"],[44,\"L569_~$\"],[45,\"bdgopq\"],[46,\"P#\"],[47,\"EX\"],[48,\"S4€\"],[49,\"Y£\"],[50,\"BNR\"],[51,\"DHKTU\"],[52,\"VZ\"],[53,\"C\"],[54,\"A\"],[55,\"&\"],[56,\"GM\"],[57,\"O\"],[60,\"Q\"],[62,\"mw\"],[65,\"%\"],[72,\"W\"],[74,\"@\"]]",-1]],[[109,-653,0,140,140,0,0,1,0.5,0.5,0,0,[]],14,15,[],[],[0,"Default",0,1]],[[600,388,0,380.6644897460938,373.904052734375,0,0,1,0.5,0.5006954073905945,0,0,[]],17,18,[],[],[0,"Default",0,1]],[[1136.894897460938,1055.94287109375,0,82.66699981689453,75.98699951171875,0,0,1,0.5050504803657532,0.5054945349693298,0,0,[]],18,20,[[0],[0]],[[1,400,0,0]],[0,"Default",0,1]],[[1136.535278320313,964.1973876953125,0,82.66699981689453,75.98699951171875,0,0,1,0.5050504803657532,0.5054945349693298,0,0,[]],19,21,[[0],[0]],[[1,400,0,0]],[0,"Default",0,1]],[[1137.084106445313,1146.424194335938,0,82.66677093505859,75.98662567138672,0,0,1,0.5050504803657532,0.5054945349693298,0,0,[]],16,17,[],[],[0,"Default",0,1]],[[600.3980712890625,384,0,220.5021514892578,171.9439086914063,0,0,1,0.5018050670623779,0.5,0,0,[]],23,3,[],[[0,2,0,3,0,0,0,50,0],[]],[0,"Default",0,1]]],[]],["Pause",2,621954870190361,true,[255,255,255],true,1,1,1,false,false,1,0,0,[[[600,600,0,1946.036010742188,1251.02294921875,0,0,1,0.5,0.5,0,0,[]],20,22,[],[],[0,"Default",0,1]],[[600,600,0,400,376,0,0,1,0.5,0.5,0,0,[]],21,23,[],[[1,2,0,3,0,0,0,50,0]],[0,"Default",0,1]]],[]],["Logo",3,899027236628199,true,[255,255,255],true,1,1,1,false,false,1,0,0,[[[110,77,0,195.7390747070313,133.4940490722656,0,0,1,0.5,0.5014662742614746,0,0,[]],22,24,[],[],[0,"Default",0,1]]],[]]],[],[]]],[["Event sheet 1",[[2,"DrapDrop",false],[1,"Paused",0,0,false,false,881036884152158,false],[1,"end",0,-1,false,false,348658772353398,false],[1,"isTimeUp",0,0,false,false,617056362802034,false],[1,"timeLeft",0,0,false,false,670843326082385,false],[1,"answer",1,"",false,false,538561721013949,false],[0,null,false,null,421297551205104,[[-1,12,null,1,false,false,false,438843515576193,false]],[[0,13,null,551138518888793,false],[-1,14,null,392038834754127,false,[[5,[0,2]],[3,0]]]]],[0,null,false,null,432411265738905,[[0,15,null,1,false,false,false,913106290597646,false]],[[1,16,null,260483465573520,false,[[3,0],[7,[2,"Load dữ liệu xong"]]]],[1,16,null,330854144982241,false,[[3,0],[7,[20,0,17,true,null]]]]],[[0,null,false,null,122100426567399,[],[[0,18,null,458181517098292,false]]]]],[0,null,false,null,495673204159818,[[0,19,null,1,false,false,false,157454832331304,false]],[[1,16,null,816803828558793,false,[[3,0],[7,[10,[10,[10,[2,"Question :"],[20,0,20,true,null]],[2," with value : "]],[20,0,21,true,null]]]]],[1,16,null,585706784629547,false,[[3,0],[7,[10,[10,[10,[2,"Request :"],[20,0,22,true,null]],[2," with value : "]],[20,0,23,true,null]]]]],[1,16,null,103090682922262,false,[[3,0],[7,[10,[2,"Options Count :"],[20,0,24,false,null]]]]],[1,16,null,460050924307031,false,[[3,0],[7,[10,[2,"Hint Count :"],[20,0,25,false,null]]]]],[6,26,null,227093858363506,false],[7,26,null,601277174090980,false],[-1,27,null,623599131030475,false,[[11,"isTimeUp"],[7,[0,0]]]],[9,28,"Pin",636254900159958,false,[[4,13],[3,0]]],[18,29,null,756761854102448,false,[[10,0],[7,[20,18,30,false,null]]]],[18,29,null,843231659647898,false,[[10,1],[7,[20,18,31,false,null]]]],[18,32,null,429067541495196,false,[[0,[20,16,30,false,null]],[0,[20,16,31,false,null]]]],[19,29,null,312955471850139,false,[[10,0],[7,[20,19,30,false,null]]]],[19,29,null,725880314927928,false,[[10,1],[7,[20,19,31,false,null]]]],[19,32,null,588637745430653,false,[[0,[20,16,30,false,null]],[0,[20,16,31,false,null]]]],[23,28,"Pin",807126609532054,false,[[4,17],[3,0]]]],[[0,null,false,null,278599510819277,[],[[0,33,null,505162364268873,false,[[0,[19,34,[[20,0,25,false,null]]]],[0,[20,6,35,false,null]],[0,[0,5]],[0,[0,1200]],[0,[0,0]],[0,[0,100]],[1,[2,"slot"]],[0,[0,0]]]]],[[0,null,false,null,452078189778132,[[-1,36,null,0,true,false,false,488889777784546,false,[[0,[19,34,[[20,0,25,false,null]]]]]]],[[1,16,null,239886316843096,false,[[3,0],[7,[10,[10,[10,[10,[10,[2,"Hint "],[19,37]],[2," : "]],[20,0,38,true,null]],[2," with value : "]],[20,0,39,false,null,[[19,37]]]]]]],[-1,40,null,371942430718793,false,[[4,6],[5,[0,1]],[0,[20,0,41,false,null,[[19,37]]]],[0,[4,[20,0,42,false,null,[[19,37]]],[0,650]]]]],[6,29,null,933941275549609,false,[[10,0],[7,[19,37]]]],[6,29,null,380164134533232,false,[[10,1],[7,[20,0,39,false,null,[[19,37]]]]]]],[[0,null,false,null,698796573985720,[[-1,43,null,0,false,false,false,410553190492367,false,[[7,[20,0,39,false,null,[[19,37]]]],[8,1],[7,[2,"_"]]]]],[[6,44,null,847566670403732,false,[[10,2],[3,1]]],[-1,40,null,521667370636870,false,[[4,11],[5,[0,1]],[0,[20,6,30,false,null]],[0,[20,6,31,false,null]]]],[11,28,"Pin",361028315192679,false,[[4,6],[3,0]]],[11,45,null,466267976699500,false,[[7,[21,6,true,null,1]]]],[6,46,null,354611702724504,false,[[0,[0,1]]]]]],[0,null,false,null,848543107448972,[[-1,47,null,0,false,false,false,386888311054006,false]],[[6,44,null,590812225579568,false,[[10,2],[3,0]]],[-1,48,null,916604551584151,false,[[11,"end"],[7,[0,1]]]]]]]]]],[0,null,false,null,822104816469346,[],[[0,33,null,737719939649407,false,[[0,[19,34,[[20,0,24,false,null]]]],[0,[20,7,35,false,null]],[0,[0,5]],[0,[0,1200]],[0,[0,0]],[0,[0,100]],[1,[2,"word"]],[0,[0,0]]]],[2,49,null,256704970269789,false,[[0,[4,[20,0,42,false,null,[[0,0]]],[0,700]]]]]],[[0,null,false,null,441467613146144,[[-1,36,null,0,true,false,false,218190693390519,false,[[0,[19,34,[[20,0,24,false,null]]]]]]],[[1,16,null,901551014325770,false,[[3,0],[7,[10,[10,[10,[10,[10,[2,"Options "],[19,37]],[2," : "]],[20,0,50,true,null]],[2," with value : "]],[20,0,51,true,null,[[19,37]]]]]]],[-1,40,null,722355474670048,false,[[4,7],[5,[0,1]],[0,[20,0,41,false,null,[[19,37]]]],[0,[4,[20,0,42,false,null,[[19,37]]],[0,700]]]]],[7,29,null,424845902591780,false,[[10,0],[7,[20,0,51,true,null,[[19,37]]]]]],[7,29,null,732477610518970,false,[[10,3],[7,[0,-1]]]],[7,29,null,972534679995256,false,[[10,1],[7,[20,7,30,false,null]]]],[7,29,null,955022957314574,false,[[10,2],[7,[20,7,31,false,null]]]],[-1,40,null,820542104698850,false,[[4,10],[5,[0,1]],[0,[20,7,30,false,null]],[0,[20,7,31,false,null]]]],[10,28,"Pin",165265909130423,false,[[4,7],[3,0]]],[10,45,null,752256115955919,false,[[7,[21,7,true,null,0]]]]]]]]]],[0,null,false,null,391531229850255,[[3,52,null,1,false,false,false,541795463553529,false,[[4,2]]],[2,53,null,0,false,false,false,463624702778654,false],[-1,54,null,0,false,false,false,211208220731414,false,[[11,"Paused"],[8,0],[7,[0,0]]]]],[[15,55,null,933729384541080,false,[[2,["click",false]],[3,0],[0,[0,-2]],[1,[2,""]]]],[0,56,null,256977907477815,false],[7,57,"DragDrop",500676445420163,false,[[3,0]]],[-1,27,null,392747038186299,false,[[11,"answer"],[7,[2,""]]]],[8,58,null,286145656469424,false,[[1,[2,"currentAnswer"]],[13]]],[-1,59,null,870335272692108,false,[[0,[0,3]]]]]],[0,null,false,null,131646557054595,[[0,60,null,1,false,false,false,891894169376380,false]],[[15,55,null,327930580854185,false,[[2,["correct",false]],[3,0],[0,[0,-2]],[1,[2,""]]]],[-1,40,null,202907159105342,false,[[4,14],[5,[0,1]],[0,[20,2,30,false,null]],[0,[20,2,31,false,null]]]],[14,46,null,145728902691754,false,[[0,[0,0]]]]]],[0,null,false,null,626804407280781,[[0,61,null,1,false,false,false,435087545862561,false]],[[15,55,null,217938364629081,false,[[2,["error-010-206498",false]],[3,0],[0,[0,-2]],[1,[2,""]]]],[-1,40,null,522820795913632,false,[[4,14],[5,[0,1]],[0,[20,2,30,false,null]],[0,[20,2,31,false,null]]]],[14,46,null,743250840849647,false,[[0,[0,1]]]]]],[0,null,false,null,138784311293898,[[3,52,null,1,false,false,false,318840334321068,false,[[4,4]]]],[[0,56,null,188346907636434,false]]],[0,null,false,null,144690028489488,[[3,52,null,1,false,false,false,961657910924384,false,[[4,5]]]],[[0,62,null,863067724909837,false]]],[0,null,false,null,339829265544415,[[0,63,null,1,false,false,false,425081282629100,false]],[[-1,27,null,357857564221621,false,[[11,"Paused"],[7,[0,1]]]]]],[0,null,false,null,619901953302901,[[0,64,null,1,false,false,false,453788771302771,false]],[[-1,27,null,986855891964228,false,[[11,"Paused"],[7,[0,0]]]]]],[0,null,false,null,678278685100726,[[-1,65,null,0,false,false,false,839154243379294,false]],[],[[0,null,false,null,203029406704081,[[-1,43,null,0,false,false,false,812877676162386,false,[[7,[20,0,66,false,null]],[8,4],[7,[0,0]]]]],[[-1,27,null,282958384255218,false,[[11,"timeLeft"],[7,[19,67,[[0,0],[5,[20,0,66,false,null],[20,0,68,false,null]]]]]]],[9,45,null,175097790282221,false,[[7,[19,34,[[23,"timeLeft"]]]]]]]]]],[0,null,false,null,978751838447749,[[-1,65,null,0,false,false,false,740586896137774,false]],[],[[0,null,false,null,539759871180422,[[-1,43,null,0,false,false,false,735943013123850,false,[[7,[20,0,68,false,null]],[8,4],[7,[20,0,66,false,null]]]],[-1,54,null,0,false,false,false,856670007560900,false,[[11,"isTimeUp"],[8,0],[7,[0,0]]]],[-1,69,null,0,false,false,false,955668488059869,false]],[[-1,27,null,302945892896402,false,[[11,"isTimeUp"],[7,[0,1]]]],[7,57,"DragDrop",118986934409651,false,[[3,0]]],[10,70,null,739058330936640,false],[7,71,"Fade",429052538282797,false],[-1,59,null,917300360080570,false,[[0,[1,1]]]],[6,71,"Fade",315915830094512,false],[7,26,null,585032189291227,false],[11,70,null,239984847558684,false],[0,72,null,474781657260693,false,[[7,[23,"answer"]]]]]]]],[0,null,false,null,365785861310817,[[8,73,null,2,false,false,false,466620429321609,false,[[1,[2,"currentAnswer"]]]]],[],[[0,null,false,null,780375794781622,[[-1,74,null,0,true,false,false,143001263185103,false,[[1,[2,"i"]],[0,[0,0]],[0,[5,[19,34,[[20,0,25,false,null]]],[0,1]]]]]],[],[[0,null,false,null,623354472074576,[[-1,75,null,0,false,false,false,929134158340487,false,[[4,6],[7,[21,6,false,null,0]],[8,0],[7,[19,37]]]]],[[-1,27,null,483299828391284,false,[[11,"answer"],[7,[10,[10,[23,"answer"],[21,6,true,null,1]],[2,"|"]]]]]]]]],[0,null,false,null,475666535596674,[],[[-1,27,null,374977936278745,false,[[11,"answer"],[7,[19,76,[[23,"answer"],[5,[19,77,[[23,"answer"]]],[0,1]]]]]]],[0,72,null,103117520878571,false,[[7,[23,"answer"]]]]]]]],[0,null,false,null,600608562107578,[[3,52,null,1,false,false,false,891500002256313,false,[[4,16]]],[-1,78,null,0,false,false,false,644231176588955,false,[[5,[0,1]]]]],[],[[0,null,false,null,426459896580949,[[19,79,null,0,false,false,false,811423894111416,false,[[8,0],[0,[20,16,31,false,null]]]]],[[15,55,null,983752186028969,false,[[2,["click",false]],[3,0],[0,[0,-2]],[1,[2,""]]]],[18,80,"MoveTo",576994443738303,false,[[0,[21,18,false,null,0]],[0,[21,18,false,null,1]]]],[19,80,"MoveTo",664066818448917,false,[[0,[21,19,false,null,0]],[0,[21,19,false,null,1]]]]]],[0,null,false,null,813987173387856,[[19,79,null,0,false,false,false,360548133253360,false,[[8,0],[0,[21,19,false,null,1]]]]],[[15,55,null,232463401023509,false,[[2,["click",false]],[3,0],[0,[0,-2]],[1,[2,""]]]],[18,81,"MoveTo",564863130284639,false,[[4,16]]],[19,81,"MoveTo",753250951346862,false,[[4,16]]]]]]],[0,null,false,null,398375489714286,[[3,52,null,1,false,false,false,723806263526938,false,[[4,19]]],[19,79,null,0,false,false,false,181942908228041,false,[[8,0],[0,[21,19,false,null,1]]]]],[[15,55,null,294000245663561,false,[[2,["click",false]],[3,0],[0,[0,-2]],[1,[2,""]]]]],[[0,null,false,null,859972771487505,[[19,82,null,0,false,false,false,990148759371186,false,[[8,0],[0,[0,0]]]]],[[19,46,null,728229426682011,false,[[0,[0,1]]]],[15,83,null,436791612138112,false,[[3,0]]]]],[0,null,false,null,474877987440232,[[-1,47,null,0,false,false,false,904405232089990,false]],[[19,46,null,569169335937351,false,[[0,[0,0]]]],[15,83,null,898083323827850,false,[[3,1]]]]]]],[0,null,false,null,246743788520867,[[3,52,null,1,false,false,false,801931205987650,false,[[4,18]]],[18,79,null,0,false,false,false,551526414582339,false,[[8,0],[0,[21,18,false,null,1]]]]],[[15,55,null,447580256591419,false,[[2,["click",false]],[3,0],[0,[0,-2]],[1,[2,""]]]],[0,56,null,135302385113891,false],[18,81,"MoveTo",959639910199972,false,[[4,16]]],[19,81,"MoveTo",258657396501857,false,[[4,16]]],[-1,59,null,387073202837793,false,[[0,[1,0.5]]]],[-1,14,null,357224634786112,false,[[5,[0,1]],[3,0]]],[-1,14,null,853002410411529,false,[[5,[0,2]],[3,1]]]]],[0,null,false,null,600080256108869,[[3,52,null,1,false,false,false,304672810310041,false,[[4,21]]],[-1,78,null,0,false,false,false,303482445048985,false,[[5,[0,2]]]]],[[15,55,null,993940209084387,false,[[2,["click",false]],[3,0],[0,[0,-2]],[1,[2,""]]]],[0,62,null,684013340592645,false],[-1,14,null,519113282566716,false,[[5,[0,1]],[3,1]]],[-1,14,null,494131448394392,false,[[5,[0,2]],[3,0]]]]],[0,null,false,null,225587127265066,[[3,52,null,1,false,false,false,235685899401898,false,[[4,23]]]],[[15,55,null,143528796484576,false,[[2,["click",false]],[3,0],[0,[0,-2]],[1,[2,""]]]],[0,84,null,239643335500223,false,[[1,[2,"question"]]]]]]]],["DrapDrop",[[1,"filledCount",0,0,false,false,528865922993012,false],[0,null,false,null,197106660861514,[[7,85,"DragDrop",1,false,false,false,528907557634308,false]],[[15,55,null,162558464641912,false,[[2,["click",false]],[3,0],[0,[0,-2]],[1,[2,""]]]]],[[0,null,false,null,266963171745346,[[7,86,null,0,false,false,false,673397366023432,false,[[10,3],[8,1],[7,[0,-1]]]],[6,86,null,0,false,false,false,577869128870380,false,[[10,0],[8,0],[7,[21,7,false,null,3]]]],[7,87,null,0,false,false,false,609479521709627,false,[[4,10]]]],[[6,29,null,445026196152632,false,[[10,1],[7,[2,"_"]]]],[7,88,null,670463517581139,false],[10,89,null,538995332098798,false]]],[0,null,false,null,816493828433722,[[-1,47,null,0,false,false,false,390659514117980,false]],[],[[0,null,false,null,487754364377713,[[7,87,null,0,false,false,false,443159185077976,false,[[4,10]]]],[[7,88,null,774809908055048,false],[10,89,null,501986465343455,false]]]]]]],[0,null,false,null,946639210805430,[[7,90,"DragDrop",1,false,false,false,155941787306139,false]],[[15,55,null,361413524752870,false,[[2,["immersivecontrol-button-click-sound-463065",false]],[3,0],[0,[0,-2]],[1,[2,""]]]]],[[0,null,false,null,504792991445212,[[7,87,null,0,false,false,false,845450333794375,false,[[4,6]]],[6,91,null,0,false,true,false,204552588897544,false,[[10,2]]]],[],[[0,null,false,null,106550985509374,[[6,92,null,0,false,false,true,170480452496238,false,[[3,0],[0,[20,7,30,false,null]],[0,[20,7,31,false,null]]]],[6,86,null,0,false,false,false,938809230173413,false,[[10,1],[8,0],[7,[2,"_"]]]]],[[7,93,"MoveTo",350887864650832,false,[[0,[0,350]]]],[7,80,"MoveTo",122919247741976,false,[[0,[20,6,30,false,null]],[0,[20,6,31,false,null]]]],[6,29,null,568930528296173,false,[[10,1],[7,[21,7,true,null,0]]]]],[[0,null,false,null,101266177713061,[[7,86,null,0,false,false,false,148334850256636,false,[[10,3],[8,0],[7,[0,-1]]]]],[[7,29,null,762068200313175,false,[[10,3],[7,[21,6,false,null,0]]]],[-1,48,null,348122173801647,false,[[11,"filledCount"],[7,[0,1]]]]]],[0,null,false,null,296319278611324,[[-1,47,null,0,false,false,false,250133201929726,false]],[[7,29,null,116855994129968,false,[[10,3],[7,[21,6,false,null,0]]]]]]]],[0,null,false,null,180540551233675,[[-1,47,null,0,false,false,false,806523891610870,false],[7,86,null,0,false,false,false,831308228851461,false,[[10,3],[8,1],[7,[0,-1]]]]],[[7,93,"MoveTo",416883713281691,false,[[0,[0,1200]]]],[7,80,"MoveTo",572186182608955,false,[[0,[21,7,false,null,1]],[0,[21,7,false,null,2]]]],[7,29,null,370498434376498,false,[[10,3],[7,[0,-1]]]],[-1,48,null,250504698972287,false,[[11,"filledCount"],[7,[0,-1]]]]]],[0,null,false,null,664272208282422,[[-1,47,null,0,false,false,false,895425177786413,false],[7,86,null,0,false,false,false,246894625675163,false,[[10,3],[8,0],[7,[0,-1]]]]],[[7,93,"MoveTo",888826482377214,false,[[0,[0,1200]]]],[7,80,"MoveTo",393405307018971,false,[[0,[21,7,false,null,1]],[0,[21,7,false,null,2]]]],[7,29,null,503673017513230,false,[[10,3],[7,[0,-1]]]]]]]],[0,null,false,null,818745098688947,[[-1,47,null,0,false,false,false,929804756669469,false],[7,86,null,0,false,false,false,177859681995434,false,[[10,3],[8,1],[7,[0,-1]]]]],[[7,93,"MoveTo",449724002535088,false,[[0,[0,1200]]]],[7,80,"MoveTo",721292388859295,false,[[0,[21,7,false,null,1]],[0,[21,7,false,null,2]]]],[7,29,null,733212651291432,false,[[10,3],[7,[0,-1]]]],[-1,48,null,739300525987860,false,[[11,"filledCount"],[7,[0,-1]]]]]],[0,null,false,null,358120937494399,[[-1,47,null,0,false,false,false,416712700522674,false],[7,86,null,0,false,false,false,261187518957115,false,[[10,3],[8,0],[7,[0,-1]]]]],[[7,93,"MoveTo",431242330954619,false,[[0,[0,1200]]]],[7,80,"MoveTo",754072653542168,false,[[0,[21,7,false,null,1]],[0,[21,7,false,null,2]]]],[7,29,null,272960877861772,false,[[10,3],[7,[0,-1]]]]]]]],[0,null,false,null,580675938654997,[[7,94,"DragDrop",0,false,false,false,411147921527630,false]],[[7,32,null,610567804677855,false,[[0,[20,3,95,false,null]],[0,[20,3,96,false,null]]]]]],[0,null,false,null,622060364017684,[[-1,65,null,0,false,false,false,228576696549219,false]],[],[[0,null,false,null,108730370076990,[[-1,54,null,0,false,false,false,538413628199561,false,[[11,"filledCount"],[8,0],[7,[23,"end"]]]]],[[2,97,null,445242465744130,false,[[3,1]]]]],[0,null,false,null,218835501607731,[[-1,47,null,0,false,false,false,933470660702724,false]],[[2,97,null,797052197521566,false,[[3,0]]]]]]]]]],[["click.ogg",24620],["correct.ogg",60630],["error-010-206498.ogg",11425],["immersivecontrol-button-click-sound-463065.ogg",3830]],"media/",false,1200,1200,4,true,true,true,"1.0.0.0",true,false,3,0,25,false,true,1,true,"G120-sequence",0,[]]} \ No newline at end of file diff --git a/G102-sequence/icon-114.png b/audio_spelling_sequence_sentence/icon-114.png similarity index 100% rename from G102-sequence/icon-114.png rename to audio_spelling_sequence_sentence/icon-114.png diff --git a/G102-sequence/icon-128.png b/audio_spelling_sequence_sentence/icon-128.png similarity index 100% rename from G102-sequence/icon-128.png rename to audio_spelling_sequence_sentence/icon-128.png diff --git a/G102-sequence/icon-16.png b/audio_spelling_sequence_sentence/icon-16.png similarity index 100% rename from G102-sequence/icon-16.png rename to audio_spelling_sequence_sentence/icon-16.png diff --git a/G102-sequence/icon-256.png b/audio_spelling_sequence_sentence/icon-256.png similarity index 100% rename from G102-sequence/icon-256.png rename to audio_spelling_sequence_sentence/icon-256.png diff --git a/G102-sequence/icon-32.png b/audio_spelling_sequence_sentence/icon-32.png similarity index 100% rename from G102-sequence/icon-32.png rename to audio_spelling_sequence_sentence/icon-32.png diff --git a/G102-sequence/images/bg-sheet0.png b/audio_spelling_sequence_sentence/images/5sosarahtakesoff-sheet0.png similarity index 100% rename from G102-sequence/images/bg-sheet0.png rename to audio_spelling_sequence_sentence/images/5sosarahtakesoff-sheet0.png diff --git a/audio_spelling_sequence_sentence/images/btn_check-sheet0.png b/audio_spelling_sequence_sentence/images/btn_check-sheet0.png new file mode 100644 index 0000000..b7ff061 Binary files /dev/null and b/audio_spelling_sequence_sentence/images/btn_check-sheet0.png differ diff --git a/audio_spelling_sequence_sentence/images/btn_music-sheet0.png b/audio_spelling_sequence_sentence/images/btn_music-sheet0.png new file mode 100644 index 0000000..d8da2aa Binary files /dev/null and b/audio_spelling_sequence_sentence/images/btn_music-sheet0.png differ diff --git a/audio_spelling_sequence_sentence/images/btn_music-sheet1.png b/audio_spelling_sequence_sentence/images/btn_music-sheet1.png new file mode 100644 index 0000000..6a94568 Binary files /dev/null and b/audio_spelling_sequence_sentence/images/btn_music-sheet1.png differ diff --git a/audio_spelling_sequence_sentence/images/btn_pause-sheet0.png b/audio_spelling_sequence_sentence/images/btn_pause-sheet0.png new file mode 100644 index 0000000..0171eb1 Binary files /dev/null and b/audio_spelling_sequence_sentence/images/btn_pause-sheet0.png differ diff --git a/audio_spelling_sequence_sentence/images/btn_setting-sheet0.png b/audio_spelling_sequence_sentence/images/btn_setting-sheet0.png new file mode 100644 index 0000000..de69472 Binary files /dev/null and b/audio_spelling_sequence_sentence/images/btn_setting-sheet0.png differ diff --git a/audio_spelling_sequence_sentence/images/checker_wrong_correct-sheet0.png b/audio_spelling_sequence_sentence/images/checker_wrong_correct-sheet0.png new file mode 100644 index 0000000..9ddf603 Binary files /dev/null and b/audio_spelling_sequence_sentence/images/checker_wrong_correct-sheet0.png differ diff --git a/audio_spelling_sequence_sentence/images/checker_wrong_correct-sheet1.png b/audio_spelling_sequence_sentence/images/checker_wrong_correct-sheet1.png new file mode 100644 index 0000000..d26d553 Binary files /dev/null and b/audio_spelling_sequence_sentence/images/checker_wrong_correct-sheet1.png differ diff --git a/audio_spelling_sequence_sentence/images/layer-sheet0.png b/audio_spelling_sequence_sentence/images/layer-sheet0.png new file mode 100644 index 0000000..93eca23 Binary files /dev/null and b/audio_spelling_sequence_sentence/images/layer-sheet0.png differ diff --git a/audio_spelling_sequence_sentence/images/layer2-sheet0.png b/audio_spelling_sequence_sentence/images/layer2-sheet0.png new file mode 100644 index 0000000..4646cf6 Binary files /dev/null and b/audio_spelling_sequence_sentence/images/layer2-sheet0.png differ diff --git a/audio_spelling_sequence_sentence/images/newwordpng-sheet0.png b/audio_spelling_sequence_sentence/images/newwordpng-sheet0.png new file mode 100644 index 0000000..739d176 Binary files /dev/null and b/audio_spelling_sequence_sentence/images/newwordpng-sheet0.png differ diff --git a/audio_spelling_sequence_sentence/images/panel-sheet0.png b/audio_spelling_sequence_sentence/images/panel-sheet0.png new file mode 100644 index 0000000..6254e72 Binary files /dev/null and b/audio_spelling_sequence_sentence/images/panel-sheet0.png differ diff --git a/G102-sequence/images/btn_play-sheet1.png b/audio_spelling_sequence_sentence/images/panel_pause-sheet0.png similarity index 61% rename from G102-sequence/images/btn_play-sheet1.png rename to audio_spelling_sequence_sentence/images/panel_pause-sheet0.png index 84a6275..2b709cf 100644 Binary files a/G102-sequence/images/btn_play-sheet1.png and b/audio_spelling_sequence_sentence/images/panel_pause-sheet0.png differ diff --git a/audio_spelling_sequence_sentence/images/pause-sheet0.png b/audio_spelling_sequence_sentence/images/pause-sheet0.png new file mode 100644 index 0000000..de0b937 Binary files /dev/null and b/audio_spelling_sequence_sentence/images/pause-sheet0.png differ diff --git a/audio_spelling_sequence_sentence/images/senaaikhoi-sheet0.png b/audio_spelling_sequence_sentence/images/senaaikhoi-sheet0.png new file mode 100644 index 0000000..7f29f08 Binary files /dev/null and b/audio_spelling_sequence_sentence/images/senaaikhoi-sheet0.png differ diff --git a/audio_spelling_sequence_sentence/images/slot-sheet0.png b/audio_spelling_sequence_sentence/images/slot-sheet0.png new file mode 100644 index 0000000..d45a87f Binary files /dev/null and b/audio_spelling_sequence_sentence/images/slot-sheet0.png differ diff --git a/audio_spelling_sequence_sentence/images/txt_texttimer.png b/audio_spelling_sequence_sentence/images/txt_texttimer.png new file mode 100644 index 0000000..a756f4c Binary files /dev/null and b/audio_spelling_sequence_sentence/images/txt_texttimer.png differ diff --git a/audio_spelling_sequence_sentence/images/txt_worditem.png b/audio_spelling_sequence_sentence/images/txt_worditem.png new file mode 100644 index 0000000..18d3a82 Binary files /dev/null and b/audio_spelling_sequence_sentence/images/txt_worditem.png differ diff --git a/G102-sequence/index.html b/audio_spelling_sequence_sentence/index.html similarity index 98% rename from G102-sequence/index.html rename to audio_spelling_sequence_sentence/index.html index f8781db..2139186 100644 --- a/G102-sequence/index.html +++ b/audio_spelling_sequence_sentence/index.html @@ -3,7 +3,7 @@
-