sdvx: added WIP features - arena save, valgene, common.ts updates, webui features
@@ -0,0 +1,22 @@
|
||||
//DATA//
|
||||
sdvx_dir: U.GetConfig('sdvx_eg_root_dir')
|
||||
-
|
||||
div
|
||||
.card
|
||||
.card-header
|
||||
p.card-header-title
|
||||
span.icon
|
||||
i.mdi.mdi-account-edit
|
||||
| Update WebUI Resources (pull from game files)
|
||||
.card-content
|
||||
.field
|
||||
button.button.is-primary(type="update" id="updateResources")
|
||||
span.icon
|
||||
i.mdi.mdi-check
|
||||
span Update
|
||||
.field
|
||||
textarea(style="width: 100%; height: 100%; background: #4a4a4a; color: #ffffff; border-radius: 6px; padding: 5px; font-size: 15px" rows="50" id="logtextarea" name="logtextarea")
|
||||
|
||||
script(src="https://requirejs.org/docs/release/2.3.5/minified/require.js")
|
||||
script(type="text/javascript" src="static/asset/js/updateResources.js")
|
||||
div(hidden id='sdvx-dir') !{sdvx_dir}
|
||||
@@ -103,6 +103,8 @@ function getDifficulty(musicid, type) {
|
||||
return "HVN";
|
||||
case "5":
|
||||
return "VVD";
|
||||
case "6":
|
||||
return "XCD";
|
||||
}
|
||||
}
|
||||
case 4:
|
||||
|
||||
@@ -201,7 +201,7 @@ function calculateVolforce() {
|
||||
return toFixed(VF, 3);
|
||||
}
|
||||
|
||||
var diffName = ["NOV", "ADV", "EXH", "INF\nGRV\nHVN\nVVD", "MXM"];
|
||||
var diffName = ["NOV", "ADV", "EXH", "INF\nGRV\nHVN\nVVD\nXCD", "MXM"];
|
||||
|
||||
function preSetTableMark(type) {
|
||||
$('#statistic-table').empty();
|
||||
|
||||
@@ -38,8 +38,8 @@ $('[name="bgm"]').change(function() {
|
||||
$('#custom_0').attr("src", "static/asset/audio/custom_" + zeroPad($('[name="bgm"]').val(), 2) + "/0.mp3");
|
||||
$('#custom_1').attr("src", "static/asset/audio/custom_" + zeroPad($('[name="bgm"]').val(), 2) + "/1.mp3");
|
||||
if ($('[name="bgm"]').val() == 99) {
|
||||
$('#custom_0').attr("src", "static/asset/audio/special_00/0.m4a");
|
||||
$('#custom_1').attr("src", "static/asset/audio/custom_00/1.m4a");
|
||||
$('#custom_0').attr("src", "static/asset/audio/special_00/0.mp3");
|
||||
$('#custom_1').attr("src", "static/asset/audio/custom_00/1.mp3");
|
||||
}
|
||||
$('#custom_0').prop("volume", 0.5);
|
||||
$('#custom_1').prop("volume", 0.2);
|
||||
@@ -124,6 +124,13 @@ var play_bgm = false;
|
||||
var play_sel = false;
|
||||
$(document).ready(function() {
|
||||
profile_data = JSON.parse(document.getElementById("data-pass").innerText);
|
||||
items_crew = JSON.parse(document.getElementById("data-pass-crew").innerText);
|
||||
items_stamp = JSON.parse(document.getElementById("data-pass-stamp").innerText);
|
||||
items_subbg = JSON.parse(document.getElementById("data-pass-subbg").innerText);
|
||||
items_bgm = JSON.parse(document.getElementById("data-pass-bgm").innerText);
|
||||
items_nemsys = JSON.parse(document.getElementById("data-pass-nemsys").innerText);
|
||||
unlock_all = (document.getElementById("data-pass-unlock-all").innerText === 'true');
|
||||
console.log(unlock_all);
|
||||
|
||||
$.getJSON("static/asset/json/data.json", function(json) {
|
||||
database = json;
|
||||
@@ -132,47 +139,54 @@ $(document).ready(function() {
|
||||
//console.log(profile_data);
|
||||
|
||||
for (var i in json["nemsys"]) {
|
||||
$('#nemsys_select').append($('<option>', {
|
||||
value: json["nemsys"][i].value,
|
||||
text: json["nemsys"][i].name,
|
||||
}));
|
||||
var image = new Image();
|
||||
if (json["nemsys"][i].value != 30) {
|
||||
image.src = "static/asset/nemsys/nemsys_" + zeroPad(json["nemsys"][i].value, 4) + ".png";
|
||||
} else {
|
||||
image.src = "static/asset/nemsys/nemsys_aprilfool.png";
|
||||
if(unlock_all || (json["nemsys"][i].value === 0 || items_nemsys.find(x => x.id === json["nemsys"][i].value))) {
|
||||
$('#nemsys_select').append($('<option>', {
|
||||
value: json["nemsys"][i].value,
|
||||
text: json["nemsys"][i].name,
|
||||
}));
|
||||
var image = new Image();
|
||||
if (json["nemsys"][i].value != 30) {
|
||||
image.src = "static/asset/nemsys/nemsys_" + zeroPad(json["nemsys"][i].value, 4) + ".png";
|
||||
} else {
|
||||
image.src = "static/asset/nemsys/nemsys_aprilfool.png";
|
||||
}
|
||||
//console.log(profile_data["nemsys"])
|
||||
}
|
||||
//console.log(profile_data["nemsys"])
|
||||
|
||||
}
|
||||
$('#nemsys_select').val(profile_data["nemsys"]);
|
||||
|
||||
for (var i in json["subbg"]) {
|
||||
$('[name="subbg"]').append($('<option>', {
|
||||
value: json["subbg"][i].value,
|
||||
text: json["subbg"][i].name,
|
||||
}));
|
||||
var image = new Image();
|
||||
image.src = "static/asset/submonitor_bg/subbg_" + zeroPad(json["subbg"][i].value, 4) + ".jpg";
|
||||
// console.log(image);
|
||||
//console.log(profile_data["subbg"])
|
||||
if(unlock_all || (json["subbg"][i].value === 0 || items_subbg.find(x => x.id === json["subbg"][i].value))) {
|
||||
$('[name="subbg"]').append($('<option>', {
|
||||
value: json["subbg"][i].value,
|
||||
text: json["subbg"][i].name,
|
||||
}));
|
||||
var image = new Image();
|
||||
image.src = "static/asset/submonitor_bg/subbg_" + zeroPad(json["subbg"][i].value, 4) + ".jpg";
|
||||
// console.log(image);
|
||||
//console.log(profile_data["subbg"])
|
||||
}
|
||||
}
|
||||
$('[name="subbg"]').val(profile_data["subbg"]);
|
||||
|
||||
for (var i in json["bgm"]) {
|
||||
$('[name="bgm"]').append($('<option>', {
|
||||
value: json["bgm"][i].value,
|
||||
text: json["bgm"][i].name,
|
||||
}));
|
||||
var audio = new Audio();
|
||||
var audio1 = new Audio();
|
||||
if (json["bgm"][i].value == 99) {
|
||||
audio.src = "static/asset/audio/special_00/0.mp3"
|
||||
} else {
|
||||
audio.src = "static/asset/audio/custom_" + zeroPad(json["bgm"][i].value, 2) + "/0.mp3"
|
||||
audio1.src = "static/asset/audio/custom_" + zeroPad(json["bgm"][i].value, 2) + "/1.mp3"
|
||||
}
|
||||
if(unlock_all || (json["bgm"][i].value === 0 || items_bgm.find(x => parseInt(x.id) === parseInt(json["bgm"][i].value)))) {
|
||||
$('[name="bgm"]').append($('<option>', {
|
||||
value: json["bgm"][i].value,
|
||||
text: json["bgm"][i].name,
|
||||
}));
|
||||
var audio = new Audio();
|
||||
var audio1 = new Audio();
|
||||
if (json["bgm"][i].value == 99) {
|
||||
audio.src = "static/asset/audio/special_00/0.mp3"
|
||||
} else {
|
||||
audio.src = "static/asset/audio/custom_" + zeroPad(json["bgm"][i].value, 2) + "/0.mp3"
|
||||
audio1.src = "static/asset/audio/custom_" + zeroPad(json["bgm"][i].value, 2) + "/1.mp3"
|
||||
}
|
||||
|
||||
//console.log(profile_data["bgm"])
|
||||
//console.log(profile_data["bgm"])
|
||||
}
|
||||
}
|
||||
$('[name="bgm"]').val(profile_data["bgm"]);
|
||||
|
||||
@@ -186,35 +200,37 @@ $(document).ready(function() {
|
||||
$('[name="akaname"]').val(profile_data["akaname"]);
|
||||
|
||||
for (var i in json["stamp"]) {
|
||||
$('[name="stampA"]').append($('<option>', {
|
||||
value: json["stamp"][i].value,
|
||||
text: json["stamp"][i].name,
|
||||
}));
|
||||
$('[name="stampA"]').val(profile_data["stampA"]);
|
||||
if(unlock_all || (json["stamp"][i].value === 0 || items_stamp.find(x => x.id === json["stamp"][i].value))) {
|
||||
$('[name="stampA"]').append($('<option>', {
|
||||
value: json["stamp"][i].value,
|
||||
text: json["stamp"][i].name,
|
||||
}));
|
||||
$('[name="stampA"]').val(profile_data["stampA"]);
|
||||
|
||||
$('[name="stampB"]').append($('<option>', {
|
||||
value: json["stamp"][i].value,
|
||||
text: json["stamp"][i].name,
|
||||
}));
|
||||
$('[name="stampB"]').val(profile_data["stampB"]);
|
||||
$('[name="stampB"]').append($('<option>', {
|
||||
value: json["stamp"][i].value,
|
||||
text: json["stamp"][i].name,
|
||||
}));
|
||||
$('[name="stampB"]').val(profile_data["stampB"]);
|
||||
|
||||
$('[name="stampC"]').append($('<option>', {
|
||||
value: json["stamp"][i].value,
|
||||
text: json["stamp"][i].name,
|
||||
}));
|
||||
$('[name="stampC"]').val(profile_data["stampC"]);
|
||||
$('[name="stampC"]').append($('<option>', {
|
||||
value: json["stamp"][i].value,
|
||||
text: json["stamp"][i].name,
|
||||
}));
|
||||
$('[name="stampC"]').val(profile_data["stampC"]);
|
||||
|
||||
$('[name="stampD"]').append($('<option>', {
|
||||
value: json["stamp"][i].value,
|
||||
text: json["stamp"][i].name,
|
||||
}));
|
||||
$('[name="stampD"]').val(profile_data["stampD"]);
|
||||
var group = Math.trunc((json["stamp"][i].value - 1) / 4 + 1);
|
||||
var item = json["stamp"][i].value % 4;
|
||||
if (item == 0) item = 4;
|
||||
var image = new Image();
|
||||
$('[name="stampD"]').append($('<option>', {
|
||||
value: json["stamp"][i].value,
|
||||
text: json["stamp"][i].name,
|
||||
}));
|
||||
$('[name="stampD"]').val(profile_data["stampD"]);
|
||||
var group = Math.trunc((json["stamp"][i].value - 1) / 4 + 1);
|
||||
var item = json["stamp"][i].value % 4;
|
||||
if (item == 0) item = 4;
|
||||
var image = new Image();
|
||||
|
||||
image.src = "static/asset/chat_stamp/stamp_" + zeroPad(group, 4) + "/stamp_" + zeroPad(group, 4) + "_" + zeroPad(item, 2) + ".png";
|
||||
image.src = "static/asset/chat_stamp/stamp_" + zeroPad(group, 4) + "/stamp_" + zeroPad(group, 4) + "_" + zeroPad(item, 2) + ".png";
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
@@ -16,6 +16,15 @@ function getSongName(musicid) {
|
||||
//console.log(result);
|
||||
}
|
||||
|
||||
function getReleaseDate(musicid) {
|
||||
//console.log(music_db["mdb"]["music"])
|
||||
//console.log(musicid+" "+type);
|
||||
var result = music_db["mdb"]["music"].filter(object => object["@id"] == musicid);
|
||||
return result[0]["info"]["distribution_date"]["#text"]
|
||||
//console.log(result);
|
||||
}
|
||||
|
||||
|
||||
function getDifficulty(musicid, type) {
|
||||
var result = music_db["mdb"]["music"].filter(object => object["@id"] == musicid);
|
||||
if (result.length == 0) {
|
||||
@@ -41,6 +50,8 @@ function getDifficulty(musicid, type) {
|
||||
return "HVN";
|
||||
case "5":
|
||||
return "VVD";
|
||||
case "6":
|
||||
return "XCD"
|
||||
}
|
||||
}
|
||||
case 4:
|
||||
@@ -109,8 +120,10 @@ function difficultySort(d) {
|
||||
return 6;
|
||||
case "VVD":
|
||||
return 7;
|
||||
case "MXM":
|
||||
case "XCD":
|
||||
return 8;
|
||||
case "MXM":
|
||||
return 9;
|
||||
}
|
||||
return 0;
|
||||
};
|
||||
@@ -223,6 +236,7 @@ $(document).ready(function() {
|
||||
temp_data.mid = profile_data[i].mid;
|
||||
temp_data.songname = getSongName(profile_data[i].mid);
|
||||
temp_data.diff = getDifficulty(profile_data[i].mid, profile_data[i].type);
|
||||
temp_data.releasedate = getReleaseDate(profile_data[i].mid);
|
||||
temp_data.score = profile_data[i].score;
|
||||
temp_data.exscore = ((profile_data[i].exscore) ? profile_data[i].exscore : 0);
|
||||
temp_data.grade = getGrade(profile_data[i].grade);
|
||||
@@ -246,6 +260,7 @@ $(document).ready(function() {
|
||||
{ data: 'mid' },
|
||||
{ data: 'songname' },
|
||||
{ data: 'diff', "type": "diff" },
|
||||
{ data: 'releasedate'},
|
||||
{ data: 'score', },
|
||||
{ data: 'exscore' },
|
||||
{ data: 'grade', "type": "grade" },
|
||||
|
||||
@@ -0,0 +1,142 @@
|
||||
function getInfDifficulty(inf_ver) {
|
||||
switch (inf_ver) {
|
||||
case "2":
|
||||
return "INF";
|
||||
case "3":
|
||||
return "GRV";
|
||||
case "4":
|
||||
return "HVN";
|
||||
case "5":
|
||||
return "VVD";
|
||||
case "6":
|
||||
return "XCD"
|
||||
}
|
||||
}
|
||||
$(document).ready(function() {
|
||||
courseData = musicDB = []
|
||||
versionCourseData = []
|
||||
courseLevels = []
|
||||
specificCourse = []
|
||||
selectedVersion = selectedCourseLevel = selectedSpecificCourse = null
|
||||
$.getJSON('static/asset/json/course_data.json', function(json) {
|
||||
courseData = json;
|
||||
})
|
||||
$.getJSON("static/asset/json/music_db.json", function(json) {
|
||||
musicDB = json;
|
||||
});
|
||||
|
||||
$('#savebutton').click(function(){
|
||||
|
||||
})
|
||||
|
||||
$('#sdvx-version').change(function(){
|
||||
$('#skill-course').find('option').not(':first').remove();
|
||||
$('#skill-course-level').find('option').not(':first').remove();
|
||||
$('.track-name').val('');
|
||||
$('.track-id').val('');
|
||||
$('.track-difficulty').val('');
|
||||
if(this.value != '-- Select --'){
|
||||
selectedVersion = parseInt(this.value);
|
||||
selectedCourseLevel = null;
|
||||
selectedSpecificCourse = null;
|
||||
versionCourseData = courseData.courseData.find(data => parseInt(data['version']) === selectedVersion).info;
|
||||
courseLevels = []
|
||||
specificCourse = []
|
||||
versionCourseData.forEach(function(item, index){
|
||||
item.courses.forEach(function(item2, index2) {
|
||||
if(!courseLevels.some(course => course.includes(item2['name']))) courseLevels.push([item2['name'], item2['id']]);
|
||||
})
|
||||
});
|
||||
|
||||
$.each(courseLevels, function() {
|
||||
$('#skill-course').append("<option value=" + this[1] + ">" + this[0] + "</>");
|
||||
});
|
||||
}
|
||||
})
|
||||
|
||||
$('#skill-course').change(function(){
|
||||
$('#skill-course-level').find('option').not(':first').remove();
|
||||
$('.track-name').val('');
|
||||
$('.track-id').val('');
|
||||
$('.track-difficulty').val('');
|
||||
if(this.value != '-- Select --'){
|
||||
selectedCourseLevel = parseInt(this.value);
|
||||
selectedSpecificCourse = null;
|
||||
specificCourse = []
|
||||
versionCourseData.forEach(function(item, index){
|
||||
item.courses.forEach(function(item2, index2) {
|
||||
if(!specificCourse.some(course => course.includes(item['name'])) && item2['id'] == selectedCourseLevel){
|
||||
console.log(item['name'] + " included in " + selectedCourseLevel + " in " + selectedVersion)
|
||||
specificCourse.push([item['name'], item['id']])
|
||||
}
|
||||
})
|
||||
});
|
||||
$.each(specificCourse, function() {
|
||||
console.log(specificCourse)
|
||||
$('#skill-course-level').append("<option value=" + this[1] + ">" + this[0] + "</>");
|
||||
});
|
||||
}
|
||||
})
|
||||
|
||||
$('#skill-course-level').change(function(){
|
||||
if(this.value != '-- Select --'){
|
||||
selectedSpecificCourse = parseInt(this.value);
|
||||
theCourse = versionCourseData.find(data => data.id === selectedSpecificCourse).courses
|
||||
.find(data => data.id === selectedCourseLevel).tracks;
|
||||
trackIndex = 0;
|
||||
difficultyLabels = ['Novice', 'Advanced', 'Exhaust', 'Inf/Grv/Hvn/Vvd/Xcd', 'Maximum']
|
||||
infLabel = ['0', '1', 'Infinite', 'Gravity', 'Heavenly', 'Vivid', 'Exceed']
|
||||
musicDBDifficultyLabel = ['novice', 'advanced', 'exhaust', 'infinite', 'maximum']
|
||||
theCourse.forEach(function(courseTrack){
|
||||
track = musicDB.mdb.music.find(data => parseInt(courseTrack.mid) === parseInt(data['@id']))
|
||||
// console.log(courseTrack.mty)
|
||||
if(courseTrack.mty == 3) {
|
||||
difficultyLabel = infLabel[parseInt(track.info.inf_ver['#text'])]
|
||||
} else {
|
||||
difficultyLabel = difficultyLabels[courseTrack.mty]
|
||||
}
|
||||
console.log(courseTrack.mid)
|
||||
$(".track-id").eq(trackIndex).val(track['@id'])
|
||||
$(".track-name").eq(trackIndex).val(track.info.title_name)
|
||||
$(".track-name").eq(trackIndex).attr('track-id', track['@id'])
|
||||
$('.track-difficulty').eq(trackIndex).find('option').not(':first').remove();
|
||||
$(".track-difficulty").eq(trackIndex).append("<option value=" + 0 + ">" + difficultyLabels[0] + ' (' + track.difficulty['novice'].difnum['#text'] + ")</option>")
|
||||
$(".track-difficulty").eq(trackIndex).append("<option value=" + 1 + ">" + difficultyLabels[1] + ' (' + track.difficulty['advanced'].difnum['#text'] + ")</option>")
|
||||
$(".track-difficulty").eq(trackIndex).append("<option value=" + 2 + ">" + difficultyLabels[2] + ' (' + track.difficulty['exhaust'].difnum['#text'] + ")</option>")
|
||||
if(track.difficulty['maximum'].difnum['#text'] != '0' || track.difficulty['infinite'].difnum['#text'] != '0'){
|
||||
$(".track-difficulty").eq(trackIndex).append("<option value=" + ((courseTrack.mty == 3) ? 3 : 4) + ">" + (track.difficulty['infinite'].difnum['#text'] != '0' ? infLabel[parseInt(track.info.inf_ver['#text'])] : difficultyLabels[4]) + ' (' + (track.difficulty['infinite'].difnum['#text'] != '0' ? track.difficulty['infinite'].difnum['#text'] : track.difficulty['maximum'].difnum['#text']) + ")</option>")
|
||||
}
|
||||
$(".track-difficulty").eq(trackIndex).val(courseTrack.mty)
|
||||
$(".track-difficulty").eq(trackIndex).attr('diff-id', courseTrack.mty)
|
||||
trackIndex++;
|
||||
})
|
||||
}
|
||||
})
|
||||
|
||||
$('.track-id').on('input', function(){
|
||||
searchTrackID = parseInt(this.value);
|
||||
var that_ = this;
|
||||
var currentIndex = $('.track-id').index(that_);
|
||||
difficultyLabels = ['Novice', 'Advanced', 'Exhaust', 'Inf/Grv/Hvn/Vvd/Xcd', 'Maximum']
|
||||
infLabel = ['0', '1', 'Infinite', 'Gravity', 'Heavenly', 'Vivid', 'Exceed']
|
||||
musicDBDifficultyLabel = ['novice', 'advanced', 'exhaust', 'infinite', 'maximum']
|
||||
track = musicDB.mdb.music.find(data => searchTrackID === parseInt(data['@id']))
|
||||
if(track){
|
||||
$(".track-name").eq(currentIndex).val(track.info.title_name)
|
||||
$(".track-name").eq(currentIndex).attr('track-id', track['@id'])
|
||||
$('.track-difficulty').eq(currentIndex).find('option').not(':first').remove();
|
||||
$(".track-difficulty").eq(currentIndex).append("<option value=" + 0 + ">" + difficultyLabels[0] + ' (' + track.difficulty['novice'].difnum['#text'] + ")</option>")
|
||||
$(".track-difficulty").eq(currentIndex).append("<option value=" + 1 + ">" + difficultyLabels[1] + ' (' + track.difficulty['advanced'].difnum['#text'] + ")</option>")
|
||||
$(".track-difficulty").eq(currentIndex).append("<option value=" + 2 + ">" + difficultyLabels[2] + ' (' + track.difficulty['exhaust'].difnum['#text'] + ")</option>")
|
||||
if(track.difficulty['maximum'].difnum['#text'] != '0' || track.difficulty['infinite'].difnum['#text'] != '0'){
|
||||
$(".track-difficulty").eq(currentIndex).append("<option value=" + ((parseInt(track.info.inf_ver['#text']) != 0) ? 3 : 4) + ">" + (track.difficulty['infinite'].difnum['#text'] != '0' ? infLabel[parseInt(track.info.inf_ver['#text'])] : difficultyLabels[4]) + ' (' + (track.difficulty['infinite'].difnum['#text'] != '0' ? track.difficulty['infinite'].difnum['#text'] : track.difficulty['maximum'].difnum['#text']) + ")</option>")
|
||||
}
|
||||
$(".track-difficulty").eq(currentIndex).val('-- Select --')
|
||||
$(".track-difficulty").eq(currentIndex).attr('diff-id', 0)
|
||||
} else {
|
||||
$(".track-name").eq(currentIndex).val('')
|
||||
$(".track-name").eq(currentIndex).attr('track-id', 0)
|
||||
$('.track-difficulty').eq(currentIndex).find('option').not(':first').remove();
|
||||
}
|
||||
})
|
||||
})
|
||||
@@ -0,0 +1,130 @@
|
||||
function getInfDifficulty(inf_ver) {
|
||||
switch (inf_ver) {
|
||||
case "2":
|
||||
return "INF";
|
||||
case "3":
|
||||
return "GRV";
|
||||
case "4":
|
||||
return "HVN";
|
||||
case "5":
|
||||
return "VVD";
|
||||
case "6":
|
||||
return "XCD"
|
||||
}
|
||||
}
|
||||
$(document).ready(function() {
|
||||
// jQuery.fn.dataTableExt.oSort['diff-asc'] = function(a, b) {
|
||||
// var x = difficultySort(a);
|
||||
// var y = difficultySort(b);
|
||||
|
||||
// return ((x < y) ? -1 : ((x > y) ? 1 : 0));
|
||||
// };
|
||||
|
||||
// jQuery.fn.dataTableExt.oSort['diff-desc'] = function(a, b) {
|
||||
// var x = difficultySort(a);
|
||||
// var y = difficultySort(b);
|
||||
|
||||
// return ((x < y) ? 1 : ((x > y) ? -1 : 0));
|
||||
// };
|
||||
|
||||
// jQuery.fn.dataTableExt.oSort['grade-asc'] = function(a, b) {
|
||||
// var x = gradeSort(a);
|
||||
// var y = gradeSort(b);
|
||||
|
||||
// return ((x < y) ? -1 : ((x > y) ? 1 : 0));
|
||||
// };
|
||||
|
||||
// jQuery.fn.dataTableExt.oSort['grade-desc'] = function(a, b) {
|
||||
// var x = gradeSort(a);
|
||||
// var y = gradeSort(b);
|
||||
|
||||
// return ((x < y) ? 1 : ((x > y) ? -1 : 0));
|
||||
// };
|
||||
|
||||
// jQuery.fn.dataTableExt.oSort['clear-mark-asc'] = function(a, b) {
|
||||
// var x = markSort(a);
|
||||
// var y = markSort(b);
|
||||
|
||||
// return ((x < y) ? -1 : ((x > y) ? 1 : 0));
|
||||
// };
|
||||
|
||||
// jQuery.fn.dataTableExt.oSort['clear-mark-desc'] = function(a, b) {
|
||||
// var x = markSort(a);
|
||||
// var y = markSort(b);
|
||||
|
||||
// return ((x < y) ? 1 : ((x > y) ? -1 : 0));
|
||||
// };
|
||||
// var profile_data = JSON.parse(document.getElementById("data-pass").innerText);
|
||||
// profile_data = profile_data.sort(function(a, b) {
|
||||
// if (a.mid > b.mid) return 1;
|
||||
// if (a.mid < b.mid) return -1;
|
||||
// return a.type > b.type ? 1 : -1;
|
||||
// });
|
||||
|
||||
//console.log(profile_data);
|
||||
//$('#music_score').DataTable();
|
||||
|
||||
$.getJSON("static/asset/json/music_db.json", function(json) {
|
||||
music_db = json;
|
||||
var music_data = [];
|
||||
for (let mdata in music_db.mdb.music) {
|
||||
var temp_data = {};
|
||||
temp_data.mid = music_db.mdb.music[mdata]['@id'];
|
||||
temp_data.songname = music_db.mdb.music[mdata]['info']['title_name'];
|
||||
temp_data.releasedate = music_db.mdb.music[mdata]['info']['distribution_date']['#text'];
|
||||
temp_data.nov = "";
|
||||
temp_data.adv = "";
|
||||
temp_data.exh = "";
|
||||
temp_data.mxm = "";
|
||||
temp_data.oth = "";
|
||||
if (music_db.mdb.music[mdata]['difficulty']['novice']['difnum']['#text'] != 0) {
|
||||
temp_data.nov = music_db.mdb.music[mdata]['difficulty']['novice']['difnum']['#text']
|
||||
}
|
||||
if (music_db.mdb.music[mdata]['difficulty']['advanced']['difnum']['#text'] != 0) {
|
||||
temp_data.adv = music_db.mdb.music[mdata]['difficulty']['advanced']['difnum']['#text']
|
||||
}
|
||||
if (music_db.mdb.music[mdata]['difficulty']['exhaust']['difnum']['#text'] != 0) {
|
||||
temp_data.exh = music_db.mdb.music[mdata]['difficulty']['exhaust']['difnum']['#text']
|
||||
}
|
||||
if (music_db.mdb.music[mdata]['difficulty']['maximum']['difnum']['#text'] != 0) {
|
||||
temp_data.mxm = music_db.mdb.music[mdata]['difficulty']['maximum']['difnum']['#text']
|
||||
}
|
||||
if (music_db.mdb.music[mdata]['info']['inf_ver']['#text'] != 0) {
|
||||
temp_data.oth = music_db.mdb.music[mdata]['difficulty']['infinite']['difnum']['#text'] + ' | ' + getInfDifficulty(music_db.mdb.music[mdata]['info']['inf_ver']['#text'])
|
||||
}
|
||||
music_data.push(temp_data);
|
||||
}
|
||||
|
||||
$('#songslist').DataTable({
|
||||
data: music_data,
|
||||
columns: [
|
||||
{ data: 'mid' },
|
||||
{ data: 'songname' },
|
||||
{ data: 'releasedate' },
|
||||
{ data: 'nov', },
|
||||
{ data: 'adv' },
|
||||
{ data: 'exh' },
|
||||
{ data: 'mxm' },
|
||||
{ data: 'oth' }
|
||||
],
|
||||
columnDefs: [
|
||||
|
||||
],
|
||||
responsive: {
|
||||
details: {
|
||||
display: $.fn.dataTable.Responsive.display.modal({
|
||||
header: function(row) {
|
||||
var data = row.data();
|
||||
return 'Details for ' + data.songname;
|
||||
}
|
||||
})
|
||||
}
|
||||
},
|
||||
|
||||
});
|
||||
|
||||
|
||||
});
|
||||
|
||||
|
||||
})
|
||||
@@ -0,0 +1,55 @@
|
||||
// data\graphics\game_nemsys -- nemsys
|
||||
// data\graphics\ap_card -- appeal card
|
||||
// data\graphics\submonitor_bg -- subbg
|
||||
$(document).ready(async function() {
|
||||
let sdvxDir = document.getElementById("sdvx-dir").innerText
|
||||
$( "#updateResources" ).click(async function() {
|
||||
answer = confirm("Clicking OK would mean that you have already updated the datecode in your ea3-config.xml file. Would you like to proceed?");
|
||||
if (answer == true) {
|
||||
document.getElementById("logtextarea").textContent = ''
|
||||
document.getElementById("logtextarea").textContent = 'Updating music_db.json file....\n'
|
||||
await emit("generateLatestMusicDBFile").then(
|
||||
function(response) {
|
||||
$.getJSON( "static/asset/json/music_db.json", function( data ) {
|
||||
document.getElementById("logtextarea").textContent += "New songs found in version " + data['mdb']['version'] + ": \n";
|
||||
$.each( data['mdb']['music'], function( key, val ) {
|
||||
if(parseInt(val.info.distribution_date['#text']) >= parseInt(data['mdb']['version'].substring(0,8))){
|
||||
document.getElementById("logtextarea").textContent += val.info.distribution_date['#text'] + " - " + val.info.title_name + "\n";
|
||||
}
|
||||
});
|
||||
document.getElementById("logtextarea").textContent += '\n\n'
|
||||
});
|
||||
},
|
||||
function(error) {
|
||||
document.getElementById("logtextarea").textContent += error + "\n";
|
||||
document.getElementById("logtextarea").textContent += "Please check if 'Exceed Gear Data Directory' is configured properly." + "\n";
|
||||
}
|
||||
);
|
||||
|
||||
await emit("copyResourcesFromGame").then(
|
||||
function(response){
|
||||
$.getJSON( "static/asset/logs/copyResourcesFromGame.json", function( data ) {
|
||||
document.getElementById("logtextarea").textContent += 'New nemsys: \n'
|
||||
$.each(data['nemsys'], function(key, val) {
|
||||
document.getElementById("logtextarea").textContent += val + '\n'
|
||||
})
|
||||
document.getElementById("logtextarea").textContent += '\n\n'
|
||||
document.getElementById("logtextarea").textContent += 'New appeal cards: \n'
|
||||
$.each(data['apCard'], function(key, val) {
|
||||
document.getElementById("logtextarea").textContent += val + '\n'
|
||||
})
|
||||
document.getElementById("logtextarea").textContent += '\n\n'
|
||||
document.getElementById("logtextarea").textContent += 'New submonitor backgrounds: \n'
|
||||
$.each(data['subbg'], function(key, val) {
|
||||
document.getElementById("logtextarea").textContent += val + '\n'
|
||||
})
|
||||
document.getElementById("logtextarea").textContent += '\n\n'
|
||||
})
|
||||
},
|
||||
function(error){
|
||||
console.log(error);
|
||||
}
|
||||
)
|
||||
}
|
||||
});
|
||||
})
|
||||
@@ -0,0 +1 @@
|
||||
{"nemsys":["nemsys_0008.png","nemsys_0009.png","nemsys_0011.png","nemsys_0021.png","nemsys_0022.png","nemsys_0023.png","nemsys_0024.png","nemsys_0025.png","nemsys_0026.png","nemsys_0027.png","nemsys_0028.png","nemsys_0029.png","nemsys_0030.png","nemsys_0031.png"],"apCard":["ap_06_R0002.png","ap_06_R0003.png","ap_06_R0004.png","ap_06_R0005.png","ap_06_R0006.png","ap_06_R0007.png","ap_06_R0008.png","ap_06_R0009.png","ap_06_R0010.png","ap_06_R0011.png"],"subbg":["subbg_0103.png","subbg_0104.png","subbg_0105.png","subbg_0106.png","subbg_0107.png","subbg_0108.png","subbg_0109.png","subbg_0110.png","subbg_0111.png","subbg_0112.png","subbg_0113.png","subbg_0114.png","subbg_0115.png","subbg_0116.png","subbg_0117.png","subbg_0118.png","subbg_0119.png","subbg_0120.png","subbg_0121.png","subbg_0122.png","subbg_0123.png","subbg_0124.png","subbg_0125.png","subbg_0126.png","subbg_0127.png","subbg_0128.png","subbg_0129.png","subbg_0130.png","subbg_0131.png","subbg_0132.png","subbg_0133.png","subbg_0134.png","subbg_0135.png","subbg_0136.png","subbg_0137.png","subbg_0138.png","subbg_0139.png","subbg_0140.png","subbg_0141.png","subbg_0142.png","subbg_0143.png","subbg_0144.png","subbg_0145.png","subbg_0146.png","subbg_0147.png","subbg_0148.png","subbg_0149.png","subbg_0150.png","subbg_0151.png","submonitor_bg.ifs"]}
|
||||
@@ -1,6 +1,18 @@
|
||||
//DATA//
|
||||
profile: DB.FindOne(refid, { collection: 'profile' })
|
||||
|
||||
items_crew: DB.Find(refid, {$or:[{collection:"item",type:11,id:117}, {collection:"item",type:11,id:119}, {collection:"item",type:11,id:120}, {collection:"item",type:11,id:121}, {collection:"item",type:11,id:124}, {collection:"item",type:11,id:129}]})
|
||||
|
||||
items_stamp: DB.Find(refid, { collection:"item",type:17 })
|
||||
|
||||
items_subbg: DB.Find(refid, { collection:"item",type:18 })
|
||||
|
||||
items_bgm: DB.Find(refid, { collection:"item",type:19 })
|
||||
|
||||
items_nemsys: DB.Find(refid, { collection:"item",type:20 })
|
||||
|
||||
unlock_all: U.GetConfig('unlock_all_valk_items')
|
||||
|
||||
-
|
||||
const padded = _.padStart(profile.id.toString(), 8);
|
||||
const sdvxid = `${padded.slice(0, 4)}-${padded.slice(4)}`;
|
||||
@@ -160,4 +172,10 @@ div
|
||||
.tild.is-child
|
||||
a(href="static/asset/nemsys/custom_nemsys.xml" download="custom_nemsys.xml") custom_nemsys.xml download
|
||||
div(hidden id='data-pass') !{JSON.stringify(profile)}
|
||||
div(hidden id='data-pass-crew') !{JSON.stringify(items_crew)}
|
||||
div(hidden id='data-pass-stamp') !{JSON.stringify(items_stamp)}
|
||||
div(hidden id='data-pass-subbg') !{JSON.stringify(items_subbg)}
|
||||
div(hidden id='data-pass-bgm') !{JSON.stringify(items_bgm)}
|
||||
div(hidden id='data-pass-nemsys') !{JSON.stringify(items_nemsys)}
|
||||
div(hidden id='data-pass-unlock-all') !{unlock_all}
|
||||
script(src="static/asset/js/preview.js")
|
||||
|
||||
@@ -20,6 +20,7 @@ div
|
||||
th ID
|
||||
th Song Name
|
||||
th Difficulty
|
||||
th Date Released
|
||||
th Score
|
||||
th Exscore
|
||||
th Grade
|
||||
|
||||
@@ -0,0 +1,80 @@
|
||||
-
|
||||
link(rel="stylesheet" href="static/asset/css/datatables.css")
|
||||
div
|
||||
.card
|
||||
.card-header
|
||||
p.card-header-title
|
||||
span.icon
|
||||
i.mdi.mdi-account-edit
|
||||
| Skill Analyzer Settings (WIP)
|
||||
.card-content
|
||||
div
|
||||
div
|
||||
p(style="display:inline") Select Game:
|
||||
|
|
||||
|
|
||||
select(id='sdvx-version')
|
||||
option() -- Select --
|
||||
option(value='4') IV - Heavenly Haven
|
||||
option(value='5') V - Vivid Wave
|
||||
option(value='6') VI - Exceed Gear
|
||||
// input(id='add-skill-level-input')
|
||||
// button(id='add-skill-level-btn') +
|
||||
|
||||
div
|
||||
p(style="display:inline") Skill course:
|
||||
|
|
||||
|
|
||||
select(id='skill-course')
|
||||
option() -- Select --
|
||||
|
|
||||
|
|
||||
select(id='skill-course-level')
|
||||
option() -- Select --
|
||||
|
||||
div
|
||||
each val in [1, 2, 3]
|
||||
br
|
||||
p(style="display:inline") Track ##{val}:
|
||||
|
|
||||
|
|
||||
|
|
||||
input(class='track-id' maxlength="4" size="4" onkeyup="this.value = this.value.replace(/[^0-9]+/, '')")
|
||||
|
|
||||
|
|
||||
|
|
||||
input(class='track-name')
|
||||
|
|
||||
|
|
||||
|
|
||||
select(class='track-difficulty')
|
||||
option() -- Select --
|
||||
br
|
||||
br
|
||||
button(id='savebutton') Save
|
||||
br
|
||||
br
|
||||
div
|
||||
.card
|
||||
.card-header
|
||||
p.card-header-title
|
||||
span.icon
|
||||
i.mdi.mdi-account-edit
|
||||
| Songs List
|
||||
.card-content
|
||||
table.table(id="songslist" style="width:100%")
|
||||
thead
|
||||
tr
|
||||
th ID
|
||||
th Song Name
|
||||
th Release Date
|
||||
th Novice
|
||||
th Advanced
|
||||
th Exhaust
|
||||
th Maximum
|
||||
th Other
|
||||
tbody
|
||||
|
||||
script(src="static/asset/js/skillanalyzer.js")
|
||||
script(src="static/asset/js/datatables.js")
|
||||
script(src="static/asset/js/songslist.js")
|
||||
@@ -0,0 +1,26 @@
|
||||
-
|
||||
link(rel="stylesheet" href="static/asset/css/datatables.css")
|
||||
div
|
||||
.card
|
||||
.card-header
|
||||
p.card-header-title
|
||||
span.icon
|
||||
i.mdi.mdi-account-edit
|
||||
| Songs List
|
||||
.card-content
|
||||
table.table(id="songslist" style="width:100%")
|
||||
thead
|
||||
tr
|
||||
th ID
|
||||
th Song Name
|
||||
th Release Date
|
||||
th Novice
|
||||
th Advanced
|
||||
th Exhaust
|
||||
th Maximum
|
||||
th Other
|
||||
tbody
|
||||
|
||||
//div(hidden id='data-pass') !{JSON.stringify(profile)}
|
||||
script(src="static/asset/js/songslist.js")
|
||||
script(src="static/asset/js/datatables.js")
|
||||
|
After Width: | Height: | Size: 77 KiB |
|
After Width: | Height: | Size: 71 KiB |
|
After Width: | Height: | Size: 65 KiB |
|
After Width: | Height: | Size: 63 KiB |
|
After Width: | Height: | Size: 61 KiB |
|
After Width: | Height: | Size: 70 KiB |
|
After Width: | Height: | Size: 66 KiB |
|
After Width: | Height: | Size: 68 KiB |
|
After Width: | Height: | Size: 67 KiB |
|
After Width: | Height: | Size: 60 KiB |
|
After Width: | Height: | Size: 873 KiB |
|
After Width: | Height: | Size: 845 KiB |
|
After Width: | Height: | Size: 1.1 MiB |
|
After Width: | Height: | Size: 901 KiB |
|
After Width: | Height: | Size: 904 KiB |
|
After Width: | Height: | Size: 845 KiB |
|
After Width: | Height: | Size: 1.1 MiB |
|
After Width: | Height: | Size: 1.1 MiB |
|
After Width: | Height: | Size: 1.6 MiB |
|
After Width: | Height: | Size: 1.7 MiB |
|
After Width: | Height: | Size: 1.7 MiB |
|
After Width: | Height: | Size: 1.7 MiB |
|
After Width: | Height: | Size: 1.8 MiB |
|
After Width: | Height: | Size: 1.8 MiB |
|
After Width: | Height: | Size: 2.5 MiB |
|
After Width: | Height: | Size: 3.2 MiB |
|
After Width: | Height: | Size: 2.6 MiB |
|
After Width: | Height: | Size: 3.3 MiB |
|
After Width: | Height: | Size: 2.5 MiB |
|
After Width: | Height: | Size: 2.8 MiB |
|
After Width: | Height: | Size: 3.6 MiB |
|
After Width: | Height: | Size: 2.7 MiB |
|
After Width: | Height: | Size: 1.4 MiB |
|
After Width: | Height: | Size: 1.7 MiB |
|
After Width: | Height: | Size: 2.0 MiB |
|
After Width: | Height: | Size: 2.0 MiB |
|
After Width: | Height: | Size: 2.3 MiB |
|
After Width: | Height: | Size: 2.8 MiB |
|
After Width: | Height: | Size: 2.3 MiB |
|
After Width: | Height: | Size: 2.1 MiB |
|
After Width: | Height: | Size: 2.8 MiB |
|
After Width: | Height: | Size: 1.9 MiB |
|
After Width: | Height: | Size: 3.0 MiB |
|
After Width: | Height: | Size: 1.2 MiB |
|
After Width: | Height: | Size: 2.2 MiB |
|
After Width: | Height: | Size: 2.1 MiB |
|
After Width: | Height: | Size: 2.2 MiB |
|
After Width: | Height: | Size: 1.7 MiB |
|
After Width: | Height: | Size: 1.9 MiB |
|
After Width: | Height: | Size: 3.0 MiB |
|
After Width: | Height: | Size: 2.3 MiB |
|
After Width: | Height: | Size: 1.8 MiB |
|
After Width: | Height: | Size: 1.9 MiB |
|
After Width: | Height: | Size: 2.2 MiB |
|
After Width: | Height: | Size: 2.5 MiB |
|
After Width: | Height: | Size: 2.2 MiB |
|
After Width: | Height: | Size: 2.5 MiB |
|
After Width: | Height: | Size: 2.3 MiB |
|
After Width: | Height: | Size: 1.9 MiB |
|
After Width: | Height: | Size: 2.1 MiB |
|
After Width: | Height: | Size: 2.5 MiB |
|
After Width: | Height: | Size: 2.1 MiB |
|
After Width: | Height: | Size: 2.0 MiB |
|
After Width: | Height: | Size: 2.2 MiB |
|
After Width: | Height: | Size: 2.3 MiB |
|
After Width: | Height: | Size: 2.4 MiB |
|
After Width: | Height: | Size: 2.9 MiB |
|
After Width: | Height: | Size: 2.7 MiB |
|
After Width: | Height: | Size: 2.7 MiB |
|
After Width: | Height: | Size: 2.7 MiB |
|
After Width: | Height: | Size: 2.8 MiB |
|
After Width: | Height: | Size: 3.7 MiB |
|
After Width: | Height: | Size: 2.9 MiB |