Compare commits

...

19 Commits
v1.5 ... master

Author SHA1 Message Date
Li
17010329f7 add icon0.ico 2022-07-24 15:46:57 +12:00
Li
6e32d75f4a update node webkit 2022-07-24 14:54:30 +12:00
Li
c0d30d193a fix 2022-07-24 14:46:52 +12:00
Li
c3dd84900d Upload shit thats been lying around on my computer forever 2022-07-24 14:36:45 +12:00
Bluzume
09ed08b5d2
Update buildnw.yml 2021-11-01 21:07:12 +13:00
Bluzume
97f7d8e43a add verson select 2021-10-31 11:34:48 -04:00
Bluzume
7a23d2b915
Merge pull request #7 from thecoder08/master
Add andoid build to CI/CD
2021-08-25 04:20:37 +12:00
Lennon McLean
2d211242c1
Updated version in READMe 2021-08-24 10:38:52 -04:00
Lennon McLean
7992cfa1fc
Merge branch 'KuromeSan:master' into master 2021-08-24 13:55:32 +01:00
Lennon McLean
b1842a3b9c
Update buildnw.yml 2021-08-24 13:46:58 +01:00
Lennon McLean
61fbc1b098
Update buildnw.yml 2021-08-24 13:39:30 +01:00
Lennon McLean
f9e54ba09d
Update buildnw.yml 2021-08-24 13:36:20 +01:00
Lennon McLean
ec30df1f40
Update buildnw.yml 2021-08-24 13:29:08 +01:00
Lennon McLean
a1be90abf9
Update buildnw.yml 2021-08-24 13:22:43 +01:00
Lennon McLean
f9878d8494
Update buildnw.yml 2021-08-24 13:18:45 +01:00
Lennon McLean
f1d66e2782
Update buildnw.yml 2021-08-24 13:12:03 +01:00
Lennon McLean
8bafe89e58
Update buildnw.yml 2021-08-22 08:59:26 -04:00
Lennon McLean
3bb2cb2076
Update buildnw.yml 2021-08-22 08:38:10 -04:00
Lennon McLean
0c49677773
Update buildnw.yml 2021-08-22 08:36:29 -04:00
22 changed files with 368 additions and 240 deletions

View File

@ -4,6 +4,24 @@ on:
[push, workflow_dispatch] [push, workflow_dispatch]
jobs: jobs:
buildandroid:
name: Build Android app
runs-on: ubuntu-latest
steps:
- name: Get repository code
uses: actions/checkout@v2
with:
ref: android
- name: Build Android app
run: chmod +x gradlew && ./gradlew assembleWebview
- name: Upload Android build
uses: actions/upload-artifact@v2
with:
name: KitsuneOffline-android.apk
path: app/build/outputs/apk/webview/release/app-webview-release-unsigned.apk
buildios: buildios:
name: Build iOS app name: Build iOS app
runs-on: macos-latest runs-on: macos-latest
@ -42,47 +60,47 @@ jobs:
run: mkdir build run: mkdir build
- name: Download Windows x64 NW.js - name: Download Windows x64 NW.js
run: wget https://dl.nwjs.io/v0.55.0/nwjs-v0.55.0-win-x64.zip run: wget https://dl.nwjs.io/v0.66.1/nwjs-v0.66.1-win-x64.zip
- name: Download Windows ia32 NW.js - name: Download Windows ia32 NW.js
run: wget https://dl.nwjs.io/v0.55.0/nwjs-v0.55.0-win-ia32.zip run: wget https://dl.nwjs.io/v0.66.1/nwjs-v0.66.1-win-ia32.zip
- name: Download Linux x64 NW.js - name: Download Linux x64 NW.js
run: wget https://dl.nwjs.io/v0.55.0/nwjs-v0.55.0-linux-x64.tar.gz run: wget https://dl.nwjs.io/v0.66.1/nwjs-v0.66.1-linux-x64.tar.gz
- name: Download Linux ia32 NW.js - name: Download Linux ia32 NW.js
run: wget https://dl.nwjs.io/v0.55.0/nwjs-v0.55.0-linux-ia32.tar.gz run: wget https://dl.nwjs.io/v0.66.1/nwjs-v0.66.1-linux-ia32.tar.gz
- name: Download MacOS NW.js - name: Download MacOS NW.js
run: wget https://dl.nwjs.io/v0.55.0/nwjs-v0.55.0-osx-x64.zip run: wget https://dl.nwjs.io/v0.66.1/nwjs-v0.66.1-osx-x64.zip
- name: Extract Windows x64 NW.js - name: Extract Windows x64 NW.js
run: unzip nwjs-v0.55.0-win-x64.zip run: unzip nwjs-v0.66.1-win-x64.zip
- name: Extract Windows ia32 NW.js - name: Extract Windows ia32 NW.js
run: unzip nwjs-v0.55.0-win-ia32.zip run: unzip nwjs-v0.66.1-win-ia32.zip
- name: Extract Linux x64 NW.js - name: Extract Linux x64 NW.js
run: tar -xvf nwjs-v0.55.0-linux-x64.tar.gz run: tar -xvf nwjs-v0.66.1-linux-x64.tar.gz
- name: Extract Linux ia32 NW.js - name: Extract Linux ia32 NW.js
run: tar -xvf nwjs-v0.55.0-linux-ia32.tar.gz run: tar -xvf nwjs-v0.66.1-linux-ia32.tar.gz
- name: Extract MacOS NW.js - name: Extract MacOS NW.js
run: unzip nwjs-v0.55.0-osx-x64.zip run: unzip nwjs-v0.66.1-osx-x64.zip
- name: Delete archives - name: Delete archives
run: rm nwjs-v0.55.0-linux-x64.tar.gz nwjs-v0.55.0-win-x64.zip nwjs-v0.55.0-linux-ia32.tar.gz nwjs-v0.55.0-win-ia32.zip nwjs-v0.55.0-osx-x64.zip run: rm nwjs-v0.66.1-linux-x64.tar.gz nwjs-v0.66.1-win-x64.zip nwjs-v0.66.1-linux-ia32.tar.gz nwjs-v0.66.1-win-ia32.zip nwjs-v0.66.1-osx-x64.zip
- name: Rename and move NW.js directories - name: Rename and move NW.js directories
run: mv nwjs-v0.55.0-linux-x64 build/KitsuneOffline-linux-x64 && mv nwjs-v0.55.0-win-x64 build/KitsuneOffline-win-x64 && mv nwjs-v0.55.0-linux-ia32 build/KitsuneOffline-linux-ia32 && mv nwjs-v0.55.0-win-ia32 build/KitsuneOffline-win-ia32 && mv nwjs-v0.55.0-osx-x64/nwjs.app build/Kitsune.app run: mv nwjs-v0.66.1-linux-x64 build/KitsuneOffline-linux-x64 && mv nwjs-v0.66.1-win-x64 build/KitsuneOffline-win-x64 && mv nwjs-v0.66.1-linux-ia32 build/KitsuneOffline-linux-ia32 && mv nwjs-v0.66.1-win-ia32 build/KitsuneOffline-win-ia32 && mv nwjs-v0.66.1-osx-x64/nwjs.app build/Kitsune.app
- name: Create package.nw directories - name: Create package.nw directories
run: mkdir build/KitsuneOffline-linux-x64/package.nw && mkdir build/KitsuneOffline-win-x64/package.nw && mkdir build/KitsuneOffline-linux-ia32/package.nw && mkdir build/KitsuneOffline-win-ia32/package.nw && mkdir build/Kitsune.app/Contents/Resources/app.nw run: mkdir build/KitsuneOffline-linux-x64/package.nw && mkdir build/KitsuneOffline-win-x64/package.nw && mkdir build/KitsuneOffline-linux-ia32/package.nw && mkdir build/KitsuneOffline-win-ia32/package.nw && mkdir build/Kitsune.app/Contents/Resources/app.nw
- name: Copy logos to NW.js directories - name: Copy NW.js directories
run: cp -r logos build/KitsuneOffline-linux-x64/package.nw && cp -r logos build/KitsuneOffline-win-x64/package.nw && cp -r logos build/KitsuneOffline-linux-ia32/package.nw && cp -r logos build/KitsuneOffline-win-ia32/package.nw && cp -r logos build/Kitsune.app/Contents/Resources/app.nw run: cp -r logos build/KitsuneOffline-linux-x64/package.nw && cp -r logos build/KitsuneOffline-win-x64/package.nw && cp -r logos build/KitsuneOffline-linux-ia32/package.nw && cp -r logos build/KitsuneOffline-win-ia32/package.nw && cp -r logos build/Kitsune.app/Contents/Resources/app.nw && cp -r gstatic build/KitsuneOffline-linux-x64/package.nw && cp -r gstatic build/KitsuneOffline-win-x64/package.nw && cp -r gstatic build/KitsuneOffline-linux-ia32/package.nw && cp -r gstatic build/KitsuneOffline-win-ia32/package.nw && cp -r gstatic build/Kitsune.app/Contents/Resources/app.nw && cp -r silica build/KitsuneOffline-linux-x64/package.nw && cp -r silica build/KitsuneOffline-win-x64/package.nw && cp -r silica build/KitsuneOffline-linux-ia32/package.nw && cp -r silica build/KitsuneOffline-win-ia32/package.nw && cp -r silica build/Kitsune.app/Contents/Resources/app.nw
- name: Copy package.json to NW.js directories - name: Copy package.json to NW.js directories
run: cp package.json build/KitsuneOffline-linux-x64/package.nw && cp package.json build/KitsuneOffline-win-x64/package.nw && cp package.json build/KitsuneOffline-linux-ia32/package.nw && cp package.json build/KitsuneOffline-win-ia32/package.nw && cp package.json build/Kitsune.app/Contents/Resources/app.nw run: cp package.json build/KitsuneOffline-linux-x64/package.nw && cp package.json build/KitsuneOffline-win-x64/package.nw && cp package.json build/KitsuneOffline-linux-ia32/package.nw && cp package.json build/KitsuneOffline-win-ia32/package.nw && cp package.json build/Kitsune.app/Contents/Resources/app.nw

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
build/*

3
.idea/.gitignore vendored Normal file
View File

@ -0,0 +1,3 @@
# Default ignored files
/shelf/
/workspace.xml

9
.idea/KitsuneOffline.iml Normal file
View File

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$" />
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

6
.idea/misc.xml Normal file
View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectRootManager" version="2" languageLevel="JDK_11" project-jdk-name="11" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/out" />
</component>
</project>

8
.idea/modules.xml Normal file
View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/KitsuneOffline.iml" filepath="$PROJECT_DIR$/.idea/KitsuneOffline.iml" />
</modules>
</component>
</project>

6
.idea/vcs.xml Normal file
View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$" vcs="Git" />
</component>
</project>

View File

@ -5,7 +5,7 @@
Local Offline version of Kitsune Google Doodle, (Doodle Champion Island Games) Local Offline version of Kitsune Google Doodle, (Doodle Champion Island Games)
useful if you want to play without internet (or just want to mod the game) useful if you want to play without internet (or just want to mod the game)
*rc6 version files located in logos/ folder* *rc7 version files located in logos/ folder*
How to play: (for noobs) How to play: (for noobs)
Goto the releases page, download the zip and open kitsune.exe, there your done! Goto the releases page, download the zip and open kitsune.exe, there your done!

BIN
icon0.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,152 +0,0 @@
<html>
<head>
<meta charset="UTF-8">
<title>Kitsune Configurator</title>
</head>
<body>
<center>
<h1>Kitsune Configurator</h1>
<hr>
<b>LANGUAGE:</b><br>
<select id="language">
<option value="af">Afrikaans</option>
<option value="am">Amharic</option>
<option value="ar">Arabic</option>
<option value="az">Azerbaijani</option>
<option value="be">Belarusian</option>
<option value="bg">Bulgarian</option>
<option value="bn">Bengali</option>
<option value="bs">Bosnian</option>
<option value="ca">Catalan; Valencian</option>
<option value="cs">Czech</option>
<option value="da">Danish</option>
<option value="de">German</option>
<option value="el">Greek, Modern</option>
<option value="en-GB">English (UK)</option>
<option value="en" selected>English (US)</option>
<option value="es">Spanish; Castilian</option>
<option value="es-419">Spanish; South America</option>
<option value="et">Estonian</option>
<option value="eu">Basque</option>
<option value="fa">Persian</option>
<option value="fi">Finnish</option>
<option value="fr">French</option>
<option value="gl">Galician</option>
<option value="gu">Gujarati</option>
<option value="hi">Hindi</option>
<option value="hr">Croatian</option>
<option value="hu">Hungarian</option>
<option value="hy">Armenian</option>
<option value="id">Indonesian</option>
<option value="is">Icelandic</option>
<option value="it">Italian</option>
<option value="iw">Hebrew</option>
<option value="ja">Japanese</option>
<option value="ka">Georgian</option>
<option value="kk">Kazakh</option>
<option value="km">Khmer</option>
<option value="kn">Kannada</option>
<option value="ko">Korean</option>
<option value="ky">Kirghiz, Kyrgyz</option>
<option value="lo">Lao</option>
<option value="lt">Lithuanian</option>
<option value="lv">Latvian</option>
<option value="mk">Macedonian</option>
<option value="ml">Malayalam</option>
<option value="mn">Mongolian</option>
<option value="mr">Marathi (Marāṭhī)</option>
<option value="ms">Malay</option>
<option value="my">Burmese</option>
<option value="ne">Nepali</option>
<option value="nl">Dutch</option>
<option value="no">Norwegian</option>
<option value="pa">Panjabi, Punjabi</option>
<option value="pl">Polish</option>
<option value="pt-BR">Portuguese (Brazil)</option>
<option value="pt-PT">Portuguese (Europe)</option>
<option value="ro">Romanian, Moldavan</option>
<option value="ru">Russian</option>
<option value="si">Sinhala, Sinhalese</option>
<option value="sk">Slovak</option>
<option value="sl">Slovene</option>
<option value="sq">Albanian</option>
<option value="sr">Serbian</option>
<option value="sv">Swedish</option>
<option value="sw">Swahili</option>
<option value="ta">Tamil</option>
<option value="te">Telugu</option>
<option value="th">Thai</option>
<option value="tr">Turkish</option>
<option value="uk">Ukrainian</option>
<option value="ur">Urdu</option>
<option value="uz">Uzbek</option>
<option value="vi">Vietnamese</option>
<option value="zh-CN">Chinese (Simplified)</option>
<option value="zh-HK">Chinese (Traditional, Hong Kong)</option>
<option value="zh-TW">Chinese (Traditional)</option>
<option value="zu">Zulu</option>
</select>
<br>
<hr>
<b>SAVEDATA:</b><br>
<button onclick="exportSave()">Export Savefile</button>
<button onclick="importSave()">Import Savefile</button>
<hr>
<br>
<button onclick="save()">Start Game</button>
<br>
<h2>Press F10 At Game Start to return to this config menu</h2>
</center>
<script>
exportSave = function(){
var element = document.createElement('a');
element.setAttribute('href', 'data:text/plain;charset=utf-8,' + encodeURIComponent(btoa(JSON.stringify(localStorage))));
element.setAttribute('download', "kitsune.ksav");
element.style.display = 'none';
document.body.appendChild(element);
element.click();
document.body.removeChild(element);
}
importSave = function(){
var element = document.createElement('input');
element.setAttribute('type', "file");
element.setAttribute('accept', ".ksav");
element.setAttribute('id', "saveImportFile");
element.style.display = 'none';
document.body.appendChild(element);
element.addEventListener('change', function() {
var fr=new FileReader();
fr.onload=function(){
try {
storage = JSON.parse(atob(fr.result))
localStorage.clear();
Object.keys(storage).forEach(function (k) {
localStorage.setItem(k, storage[k]);
});
alert("Savedata was imported successfully!");
} catch (e) {
alert("Savedata was invalid!");
}
}
fr.readAsText(this.files[0]);
})
element.click();
document.body.removeChild(element);
}
redirect = function(){
location = "/logos/run.html";
}
save = function(){
localStorage["CONFIG_LANGUAGE"] = document.getElementById("language").value;
redirect();
}
</script>
</body>
</html>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.3 KiB

View File

@ -1,35 +0,0 @@
<html>
<head>
<meta charset="UTF-8">
<style>
html,body,header {
margin: 0;
padding: 0;
}
</style>
</head>
<body>
<script>
if(localStorage["CONFIG_LANGUAGE"] == undefined)
{
location = "/logos/config.html";
}
handler = function(event){
if(event.keyCode == 121){
location = "/logos/config.html";
}
else
{
window.removeEventListener("keydown");
}
}
window.addEventListener("keydown", handler);
document.write('<iframe src="/logos/2020/kitsune/rc7/kitsune20.html?hl='+localStorage["CONFIG_LANGUAGE"]+'" width="100%" height="100%" frameBorder="0">');
</script>
</body>
</html>

View File

@ -1,10 +1,10 @@
{ {
"name": "Kitsune", "name": "Kitsune",
"main": "logos/run.html", "main": "silica/run.html",
"window": { "window": {
"title": "Kitsune", "title": "Kitsune",
"width": 960, "width": 960,
"height": 544, "height": 544,
"icon":"logos/icon.png" "icon":"silica/icon.png"
} }
} }

249
silica/config.html Normal file
View File

@ -0,0 +1,249 @@
<html>
<head>
<meta charset="UTF-8">
<title>Kitsune Configurator</title>
</head>
<body>
<center>
<h1>Kitsune Configurator</h1>
<hr>
<b>VERSION:</b><br>
<select id="version">
</select><br>
<button onclick="downloadNewVersion()">Download a new version</button>
<div id="downloadInfo">
</div>
<hr>
<b>LANGUAGE:</b><br>
<select id="language">
<option value="af">Afrikaans</option>
<option value="am">Amharic</option>
<option value="ar">Arabic</option>
<option value="az">Azerbaijani</option>
<option value="be">Belarusian</option>
<option value="bg">Bulgarian</option>
<option value="bn">Bengali</option>
<option value="bs">Bosnian</option>
<option value="ca">Catalan; Valencian</option>
<option value="cs">Czech</option>
<option value="da">Danish</option>
<option value="de">German</option>
<option value="el">Greek, Modern</option>
<option value="en-GB">English (UK)</option>
<option value="en" selected>English (US)</option>
<option value="es">Spanish; Castilian</option>
<option value="et">Estonian</option>
<option value="eu">Basque</option>
<option value="fa">Persian</option>
<option value="fi">Finnish</option>
<option value="fr">French</option>
<option value="gl">Galician</option>
<option value="gu">Gujarati</option>
<option value="hi">Hindi</option>
<option value="hr">Croatian</option>
<option value="hu">Hungarian</option>
<option value="hy">Armenian</option>
<option value="id">Indonesian</option>
<option value="is">Icelandic</option>
<option value="it">Italian</option>
<option value="iw">Hebrew</option>
<option value="ja">Japanese</option>
<option value="ka">Georgian</option>
<option value="kk">Kazakh</option>
<option value="km">Khmer</option>
<option value="kn">Kannada</option>
<option value="ko">Korean</option>
<option value="ky">Kirghiz, Kyrgyz</option>
<option value="lo">Lao</option>
<option value="lt">Lithuanian</option>
<option value="lv">Latvian</option>
<option value="mk">Macedonian</option>
<option value="ml">Malayalam</option>
<option value="mn">Mongolian</option>
<option value="mr">Marathi (Marāṭhī)</option>
<option value="ms">Malay</option>
<option value="my">Burmese</option>
<option value="ne">Nepali</option>
<option value="nl">Dutch</option>
<option value="no">Norwegian</option>
<option value="pa">Panjabi, Punjabi</option>
<option value="pl">Polish</option>
<option value="pt-BR">Portuguese (Brazil)</option>
<option value="pt-PT">Portuguese (Europe)</option>
<option value="ro">Romanian, Moldavan</option>
<option value="ru">Russian</option>
<option value="si">Sinhala, Sinhalese</option>
<option value="sk">Slovak</option>
<option value="sl">Slovene</option>
<option value="sq">Albanian</option>
<option value="sr">Serbian</option>
<option value="sv">Swedish</option>
<option value="sw">Swahili</option>
<option value="ta">Tamil</option>
<option value="te">Telugu</option>
<option value="th">Thai</option>
<option value="tr">Turkish</option>
<option value="uk">Ukrainian</option>
<option value="ur">Urdu</option>
<option value="uz">Uzbek</option>
<option value="vi">Vietnamese</option>
<option value="zh-CN">Chinese (Simplified)</option>
<option value="zh-HK">Chinese (Traditional, Hong Kong)</option>
<option value="zh-TW">Chinese (Traditional)</option>
<option value="zu">Zulu</option>
</select>
<br>
<hr>
<b>SAVEDATA:</b><br>
<button onclick="exportSave()">Export Savefile</button>
<button onclick="importSave()">Import Savefile</button>
<hr>
<br>
<button onclick="save()" id="startButton">Start Game</button>
<br>
<h2>Press F10 to return to this config menu</h2>
</center>
<script>
const allGameFiles = ["kitsune20.html", "messages.kn.nocache.json" ,"rugby-sprite.png" ,"overworld.ogg" ,"messages.iw.nocache.json" ,"cta.png" ,"cta_play.png" ,"rock.mp3" ,"messages.it.nocache.json" ,"CTA-Archery-174787996-174787824.png" ,"messages.th.nocache.json" ,"CTA-Opening-144867217-174787752-174787825-192413481.png" ,"messages.da.nocache.json" ,"messages.tr.nocache.json" ,"messages.ca.nocache.json" ,"pingpongintro.mp4" ,"messages.fi.nocache.json" ,"messages.ar.nocache.json" ,"messages.pl.nocache.json" ,"climbingoutro.mp4" ,"swim-sprite.png" ,"messages.pt-BR.nocache.json" ,"messages.sq.nocache.json" ,"messages.mn.nocache.json" ,"messages.sv.nocache.json" ,"skate.ogg" ,"messages.gl.nocache.json" ,"ballad.ogg" ,"ballad.mp3" ,"messages.ne.nocache.json" ,"swimoutro.mp4" ,"messages.ms.nocache.json" ,"messages.af.nocache.json" ,"climbing-sprite.png" ,"preload-sprite.png" ,"messages.ja.nocache.json" ,"messages.ml.nocache.json" ,"kitsune20.js" ,"messages.lo.nocache.json" ,"shared.ogg" , "swimintro.mp4" ,"messages.zh-CN.nocache.json" ,"messages.mr.nocache.json" ,"messages.en.nocache.json" ,"messages.no.nocache.json" ,"messages.km.nocache.json" ,"messages.de.nocache.json" ,"pingpongoutro.mp4" ,"messages.es-419.nocache.json" ,"CTA-Closing-174787829-192414335.png" ,"messages.am.nocache.json" ,"CTA-CenteredPlayButtonFrame2.png" ,"climbing.ogg" ,"CTA-Marathon-174788017-174787794.png" ,"ddr.ogg" ,"disco.mp3" ,"archeryoutro.mp4" ,"messages.hy.nocache.json" ,"messages.eu.nocache.json" ,"pingpong.ogg" ,"archeryintro.mp4" ,"cutscene-sprite.png" ,"video-sprite.png" ,"messages.is.nocache.json" ,"archery.mp3" ,"messages.be.nocache.json" ,"messages.bs.nocache.json" ,"disco.ogg" ,"ddr.mp3" ,"skateoutro.mp4" ,"pingpong.mp3" ,"messages.el.nocache.json" ,"marathon-sprite.png" ,"messages.zu.nocache.json" ,"rugbyoutro.mp4" ,"outro.mp4" ,"messages.pa.nocache.json" ,"climbing.mp3" ,"messages.hr.nocache.json" ,"messages.bn.nocache.json" ,"messages.sw.nocache.json" ,"archery.ogg" ,"overworld-sprite.png" ,"messages.ur.nocache.json" ,"messages.mk.nocache.json" ,"marathonintro.mp4" ,"messages.sk.nocache.json" ,"rock.ogg" ,"marathonoutro.mp4" ,"messages.et.nocache.json" ,"messages.pt-PT.nocache.json" ,"messages.zh-TW.nocache.json" ,"messages.uk.nocache.json" ,"messages.fa.nocache.json" ,"messages.si.nocache.json" ,"messages.es.nocache.json" ,"pingpong-sprite.png" ,"messages.ky.nocache.json" ,"CTA-OffsetPlayButtonFrame1.png" ,"messages.cs.nocache.json" ,"CTA-OffsetPlayButtonFrame2.png" ,"shared.mp3" ,"marathon.mp3" ,"intro.mp4" ,"messages.uz.nocache.json" ,"messages.hi.nocache.json" ,"messages.nl.nocache.json" ,"CTA-Skateboarding-174787927.png" ,"marathon.ogg" ,"overworld.mp3" ,"archery-sprite.png" ,"messages.lt.nocache.json" ,"messages.kk.nocache.json" ,"kitsune_compiled_deferred_module.js" ,"skate.mp3" ,"messages.en-GB.nocache.json" ,"messages.bg.nocache.json" ,"CTA-Swimming-174787828-174787766.png" ,"messages.my.nocache.json" ,"messages.hu.nocache.json" ,"messages.ru.nocache.json" ,"skate-sprite.png" ,"CTA-CenteredPlayButtonFrame1.png" ,"messages.te.nocache.json" ,"messages.zh-HK.nocache.json" ,"messages.lv.nocache.json" ,"rugbyintro.mp4" ,"messages.ko.nocache.json" ,"rugby.mp3" ,"CTA_Climbing-174787997.png" ,"messages.ro.nocache.json" ,"shared-sprite.png" ,"messages.ta.nocache.json" ,"messages.vi.nocache.json" ,"messages.sl.nocache.json" ,"messages.ka.nocache.json" ,"messages.fr.nocache.json" ,"climbingintro.mp4" ,"CTA-Rugby-174787947-174787773.png" ,"skateintro.mp4" ,"messages.gu.nocache.json" ,"messages.id.nocache.json" ,"rugby.ogg" ,"CTA-TableTennis-174787827-174787820.png" ,"messages.az.nocache.json" ,"messages.sr.nocache.json"];
const fs = require('fs');
const http = require('https');
var totalDownloaded = 0;
exportSave = function(){
var element = document.createElement('a');
element.setAttribute('href', 'data:text/plain;charset=utf-8,' + encodeURIComponent(btoa(JSON.stringify(localStorage))));
element.setAttribute('download', "kitsune.ksav");
element.style.display = 'none';
document.body.appendChild(element);
element.click();
document.body.removeChild(element);
}
importSave = function(){
var element = document.createElement('input');
element.setAttribute('type', "file");
element.setAttribute('accept', ".ksav");
element.setAttribute('id', "saveImportFile");
element.style.display = 'none';
document.body.appendChild(element);
element.addEventListener('change', function() {
var fr=new FileReader();
fr.onload=function(){
try {
storage = JSON.parse(atob(fr.result))
localStorage.clear();
Object.keys(storage).forEach(function (k) {
localStorage.setItem(k, storage[k]);
});
alert("Savedata was imported successfully!");
} catch (e) {
alert("Savedata was invalid!");
}
}
fr.readAsText(this.files[0]);
})
element.click();
document.body.removeChild(element);
}
redirect = function(){
location = "/silica/run.html";
}
populate = function(){
files = fs.readdirSync("logos/2020/kitsune");
files.forEach(file => {
opt = document.createElement("option");
opt.value = file;
opt.innerText = file;
if(file == localStorage["CONFIG_VERSION"])
opt.selected = true;
document.getElementById("version").add(opt);
});
}
save = function(){
localStorage["CONFIG_LANGUAGE"] = document.getElementById("language").value;
localStorage["CONFIG_VERSION"] = document.getElementById("version").value;
redirect();
}
downloadFile = function(url, dest, cb){
const file = fs.createWriteStream(dest);
const request = http.get(url, (response) => {
if (response.statusCode !== 200) {
fs.unlink(dest, function() { cb(url+' status was ' + response.statusCode) });
}
response.pipe(file);
});
file.on('finish', function() { file.close(cb) });
request.on('error', (err) => {
fs.unlink(dest, function() { downloadFile(url, dest, cb) });
});
file.on('error', (err) => {
fs.unlink(dest, function() { downloadFile(url, dest, cb) });
});
};
downloadNewVersion = function(){
var downloadVersion = prompt("What version to DL? (known versions are: rc1-rc7, dev1-dev9", "rc7");
var outputDirectory = "logos/2020/kitsune/"+downloadVersion+"/";
var fromSite = "https://www.google.com/logos/2020/kitsune/"+downloadVersion+"/";
const request = http.get(fromSite+allGameFiles[0], (response) => {
if (response.statusCode !== 200) {
alert("Version does not exist on google's servers: got status "+response.statusCode);
return;
}
else{
document.getElementById("startButton").disabled = true;
if (!fs.existsSync(outputDirectory)){
fs.mkdirSync(outputDirectory);
}
totalDownloaded = 0;
allGameFiles.forEach(fileToDownload => {
downloadFile(fromSite+fileToDownload, outputDirectory+fileToDownload, function(cb){
totalDownloaded++;
document.getElementById("downloadInfo").innerText = "Downloading: "+totalDownloaded+"/"+allGameFiles.length + " ("+Math.round((totalDownloaded/allGameFiles.length)*100)+"%)";
if(totalDownloaded == allGameFiles.length){
location.reload();
}
})
});
}
});
request.on('error', (err) => {
alert("Failed to connect: "+err.message);
});
}
loadSettings = function(){
if(localStorage["CONFIG_LANGUAGE"] != undefined)
document.getElementById("language").value = localStorage["CONFIG_LANGUAGE"];
}
populate();
loadSettings();
</script>
</body>
</html>

View File

Before

Width:  |  Height:  |  Size: 546 B

After

Width:  |  Height:  |  Size: 546 B

46
silica/run.html Normal file
View File

@ -0,0 +1,46 @@
<html>
<head>
<meta charset="UTF-8">
<style>
html,body,header {
margin: 0;
padding: 0;
}
</style>
</head>
<body>
<script>
if(localStorage["CONFIG_LANGUAGE"] == undefined || localStorage["CONFIG_VERSION"] == undefined)
{
location = "/silica/config.html";
}
handler = function(event){
if(event.keyCode == 121){
location = "/silica/config.html";
}
else
{
window.removeEventListener("keydown");
}
}
window.addEventListener("keydown", handler);
url = '/logos/2020/kitsune/'+localStorage["CONFIG_VERSION"]+'/kitsune20.html?hl='+localStorage["CONFIG_LANGUAGE"];
history.replaceState(null, null, url)
// Change URL
xhr = new XMLHttpRequest();
xhr.open("GET", url, false);
xhr.send();
// Get html contents
document.clear();
document.write(xhr.response.replaceAll("https://www.gstatic.com/", "/gstatic/"));
// Replace gstatic.com for /gstatic/
</script>
</body>
</html>