diff --git a/Css/main.css b/Css/main.css index 94c7144..b393e69 100644 --- a/Css/main.css +++ b/Css/main.css @@ -39,6 +39,11 @@ src: url(../Fonts/Orbitron Medium.woff2) format('woff'); } +@font-face { + font-family: PTSans; + src: url(../Fonts/PTSans.woff2) format('woff'); +} + /*@font-face { font-family: SourceSansVariable-Roman; src: url(../Fonts/SourceSansVariable-Roman.woff2) format('woff'); @@ -77,6 +82,8 @@ body { margin: 0; height: 100%; } #text-container.jpn { font-family: 'FOT-RodinNTLGPro'; } +#text-container.rus { font-family: 'PTSans'; } + #text-container #fullscreen-button { position: absolute; top: 0.5rem; left: 0.5rem; font-size: 30px; line-height: 30px; opacity: 0.35; z-index: 11; } #text-container #title { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); text-align: center; font-size: 20px; transition: opacity 0.3s; cursor: default; user-select: none; } @@ -160,4 +167,4 @@ body { margin: 0; height: 100%; } @media screen and (max-height: 600px) { #mission-modal #mission-detail { display: none; } #mission-modal #mission-icon { display: block; max-height: 20%; margin: 10px 0 10px 0; object-fit: contain; } -} \ No newline at end of file +} diff --git a/Js/BgmLoop.json b/Js/BgmLoop.json index 94c06ed..1e0aaa2 100644 --- a/Js/BgmLoop.json +++ b/Js/BgmLoop.json @@ -324,6 +324,19 @@ "seconds": 0.0 } }, + "music_adam_weishaupt": { + "duration": 73.6201875, + "loop_end": { + "samples_48k": 3533703, + "samples_native": 2355802, + "seconds": 73.6188125 + }, + "loop_start": { + "samples_48k": 393648, + "samples_native": 262432, + "seconds": 8.201 + } + }, "music_apple": { "duration": 86.01065625, "loop_end": { @@ -376,6 +389,19 @@ "seconds": 18.59 } }, + "music_change_the_future": { + "duration": 119.41009375, + "loop_end": { + "samples_48k": 5731599, + "samples_native": 3821066, + "seconds": 119.4083125 + }, + "loop_start": { + "samples_48k": 1972320, + "samples_native": 1314880, + "seconds": 41.09 + } + }, "music_daisukisukisugi": { "duration": 93.21253125, "loop_end": { @@ -454,6 +480,19 @@ "seconds": 49.866 } }, + "music_ewigarbunt": { + "duration": 94.56709375, + "loop_end": { + "samples_48k": 4539136, + "samples_native": 3026091, + "seconds": 94.56534375 + }, + "loop_start": { + "samples_48k": 532224, + "samples_native": 354816, + "seconds": 11.088 + } + }, "music_first_love_song": { "duration": 104.9476875, "loop_end": { @@ -493,6 +532,19 @@ "seconds": 55.612 } }, + "music_fuugetsuno_shissou": { + "duration": 102.51465625, + "loop_end": { + "samples_48k": 4920636, + "samples_native": 3280424, + "seconds": 102.51325 + }, + "loop_start": { + "samples_48k": 1547376, + "samples_native": 1031584, + "seconds": 32.237 + } + }, "music_gekisou_gungnir": { "duration": 100.545375, "loop_end": { @@ -688,6 +740,19 @@ "seconds": 29.179 } }, + "music_hanasaku_yuuki": { + "duration": 98.078, + "loop_end": { + "samples_48k": 4707648, + "samples_native": 3138432, + "seconds": 98.076 + }, + "loop_start": { + "samples_48k": 1034160, + "samples_native": 689440, + "seconds": 21.545 + } + }, "music_hidamari_memoria": { "duration": 107.5283125, "loop_end": { @@ -701,6 +766,19 @@ "seconds": 17.948 } }, + "music_hitsuai_dyuoshauto": { + "duration": 112.36075, + "loop_end": { + "samples_48k": 5393221, + "samples_native": 3595481, + "seconds": 112.35878125 + }, + "loop_start": { + "samples_48k": 1906080, + "samples_native": 1270720, + "seconds": 39.71 + } + }, "music_junpaku_innocent": { "duration": 118.195375, "loop_end": { @@ -714,6 +792,19 @@ "seconds": 42.942 } }, + "music_kaban_no_kakushigoto": { + "duration": 80.6815, + "loop_end": { + "samples_48k": 3872619, + "samples_native": 2581746, + "seconds": 80.6795625 + }, + "loop_start": { + "samples_48k": 544176, + "samples_native": 362784, + "seconds": 11.337 + } + }, "music_kimitoiu_otokanade_tsukirumade": { "duration": 95.7555, "loop_end": { @@ -1052,6 +1143,19 @@ "seconds": 50.56 } }, + "music_souyoku_no_wingbeat": { + "duration": 150.00028125, + "loop_end": { + "samples_48k": 7199934, + "samples_native": 4799956, + "seconds": 149.998625 + }, + "loop_start": { + "samples_48k": 3152256, + "samples_native": 2101504, + "seconds": 65.672 + } + }, "music_stand_up_ready": { "duration": 111.54221875, "loop_end": { @@ -1104,6 +1208,19 @@ "seconds": 24.508 } }, + "music_tsunaida_tedakega_tsunagumono": { + "duration": 88.55775, + "loop_end": { + "samples_48k": 4250697, + "samples_native": 2833798, + "seconds": 88.5561875 + }, + "loop_start": { + "samples_48k": 731760, + "samples_native": 487840, + "seconds": 15.245 + } + }, "music_waikyou_shenshoujin": { "duration": 117.59053125, "loop_end": { diff --git a/Js/Main.js b/Js/Main.js index d108182..99c72b7 100644 --- a/Js/Main.js +++ b/Js/Main.js @@ -10,8 +10,8 @@ const shaders = new Shaders(); const textFunc = new TextFunctions(); let audio = undefined; //Cant create a audio context without user input. const player = new Player(pixiApp, utage, textFunc, audio, shaders); -const languages = ["eng", "jpn"]; -const version = "YameteTomete XDUPlayer V1.2.0"; +const languages = ["eng", "jpn", "rus"]; +const version = "YameteTomete XDUPlayer V1.2.1"; let bodyLoaded = false; let utageLoaded = false; let languagesLoaded = false; @@ -255,7 +255,16 @@ function missionChanged(mstId, value) { currentMission = newMission; currentMissionMst = mstId; if(!currentMission.Enabled) { - missionChanged(currentMissionMst, mst.Missions[currentMissionList[currentMissionIndex+1]].Id); + //Check for the next enabled mission. If there are none just reset. + for(let i = currentMissionIndex + 1; i < currentMissionList.length; ++i) { + const mis = mst.Missions[currentMissionList[i]]; + if(mis && mis.Enabled) { + missionChanged(currentMissionMst, mis.Id); + return; + } + } + //If we got through the loop there are no more enabled so just end + resetMissions(); return; } let promises = []; @@ -349,7 +358,17 @@ function skipClicked(event) { } else if(player.runEvent && currentMissionIndex !== currentMissionList.length - 1) { event.preventDefault(); event.stopPropagation(); - missionChanged(currentMissionMst, utage.groupedMissions[currentMissionMst].Missions[currentMissionList[currentMissionIndex+1]].Id); + //Find the next enabled mission + for(let i = currentMissionIndex + 1; i < currentMissionList.length; ++i) { + const mis = utage.groupedMissions[currentMissionMst].Missions[currentMissionList[i]]; + if(mis && mis.Enabled) { + //missionChanged(currentMissionMst, utage.groupedMissions[currentMissionMst].Missions[currentMissionList[currentMissionIndex+1]].Id); + missionChanged(currentMissionMst, mis.Id); + return; + } + } + //If we got through the loop there are no more enabled so just end + resetMissions(); } } diff --git a/Js/Translations b/Js/Translations index fe1fa06..533c483 160000 --- a/Js/Translations +++ b/Js/Translations @@ -1 +1 @@ -Subproject commit fe1fa06db3afc7fd1a8f967adf6e105cd26fc963 +Subproject commit 533c48371ed01ed7265b6b5f052d1b2c3fce940f