function loadAutoSynthesis() {
let scriptElement = document.createElement('script');
scriptElement.setAttribute('type', 'text/javascript');
scriptElement.textContent = '(' + Init.toString() + ')(j213$);';
document.body.appendChild(scriptElement);
}
function Init($) {
let $LogBox = null;
let xrwStatusText = function (xhr) {
return xhr.setRequestHeader('X-Requested-With', 'statusText');
};
function log(s) {
if ($LogBox && $LogBox.length) {
$LogBox.val($LogBox.val() + s + "\n");
$LogBox.scrollTop($LogBox[0].scrollHeight);
}
else {
console.log(s);
}
}
let exitFlg = false,
errFlg = false;
function autoSkillLvUp(cardId) {
const WaitTime = 100;
const RequireExp = [0, 0, 300, 800, 1800, 4000, 7000, 12000, 18000, 28000, 40000];
const RequireExpSkill4 = [0, 0, 900, 2400, 5400, 12000, 21000, 36000, 54000, 84000, 120000];
const RarityName = { 'jo': '序', 'jou': '上', 'toku': '特', 'goku': '極', 'ten': '天' };
const FixedExp = { 'jo': 350, 'jou': 600, 'toku': 2000, };
const CampaignFactor = $('div.new_union_campaign_info').length ? Number($('div.new_union_campaign_info div.hukidashi pre').eq(1).text().replace('倍', '')) : 1;
localStorage.setItem('AutoSynthesis_TargetLv', $('#TargetLv').val());
localStorage.setItem('AutoSynthesis_SenKujiNum', $('#SenKujiNum').val());
localStorage.setItem('AutoSynthesis_ExcludeJou', $('#ExcludeJou').prop('checked'));
localStorage.setItem('AutoSynthesis_ExcludeToku', $('#ExcludeToku').prop('checked'));
localStorage.setItem('AutoSynthesis_ExcludeNames', $('#ExcludeNames').val());
localStorage.setItem('AutoSynthesis_ExcludeSkills', $('#ExcludeSkills').val());
localStorage.setItem('AutoSynthesis_TenShots', $('#TenShots').prop('checked'));
localStorage.setItem('AutoSynthesis_TenShotsHidden', $('#TenShotsHidden').val());
localStorage.setItem('AutoSynthesis_ExcludeRank', $('#ExcludeRank').prop('checked'));
localStorage.setItem('AutoSynthesis_ExcludeLevel', $('#ExcludeLevel').prop('checked'));
localStorage.setItem('AutoSynthesis_ExcludeAdditional', $('#ExcludeAdditional').prop('checked'));
localStorage.setItem('AutoSynthesis_ExcludeRareCard', $('#ExcludeRareCard').prop('checked'));
let $submit = $("#ASSubmit");
$submit.val('合成中...');
$submit.off('click');
$submit.css({ 'background-image': '-webkit-gradient(linear, left top, left bottom, from(#44C), to(#116))', });
let $inputselect = $('#AutoSkillUpMenu').find('input:not("#TenShotsHidden"), select');
$inputselect.prop('disabled', true);
let $exit = $("#ASExit");
$exit.prop('disabled', false);
$exit.css({ 'background-image': '-webkit-gradient(linear, left top, left bottom, from(#C44), to(#611))', });
$('#ASSetMax').css({ 'background-image': '-webkit-gradient(linear, left top, left bottom, from(#444), to(#666))', }).prop('disabled', true);
let targetLv = Number($('#TargetLv').val()),
kujiNum = Number($('#SenKujiNum').val()),
restDosen = -1,
senkujiToken = "",
capaMargin = -1,
jqXHRList = [],
cardInfoList = [],
skill_id = [],
skillIdList = [],
excludeRarity = [],
excludeNames = [],
tenShots = false,
excludeSkills = [],
subId = "";
class CardInfo {
constructor(id, name, rarity, skill, exp) {
this.id = id;
this.name = name;
this.rarity = rarity;
this.skill = skill;
this.exp = exp;
}
}
function skillLvUp() {
let finished = false;
log('合成実行...');
let postData = {
select_card_group: $('input[name="select_card_group"]').val(),
select_hp_status: $('input[name="select_hp_status"]').val(),
common_filter_change_flg: $('input[name="common_filter_change_flg"]').val(),
select_filter_num: $('input[name="select_filter_num"]').val(),
show_deck_card_count: $('input[name="show_deck_card_count"]').val(),
material_arr: $.map(cardInfoList, function (ci) { return ci.id; }),
skill_radio: skill_id,
base_cid: $('input[name="base_cid"]').val(),
add_flg: $('input[name="add_flg"]').val(),
new_cid: $('input[name="new_cid"]').val(),
remove_cid: $('input[name="remove_cid"]').val(),
selected_skill_radio: $('input[name="selected_skill_radio"]').val(),
p: 1,
selected_cid: $('input[name="selected_cid"]').val(),
deck_mode: $('input[name="deck_mode"]').val(),
union_type: $('input[name="union_type"]').val(),
btn_change_flg: $('input[name="btn_change_flg"]').val(),
use_cp_flg: 0,
exec_btn: 1,
sub_id: $('input[name="sub_id"]').val(),
};
if ($('input[name="ad_id"]').length) {
postData.ad_id = $('input[name="ad_id"]').val();
}
$.ajax({
type: 'post',
url: '/union/levelup_execute.php',
data: postData,
beforeSend: xrwStatusText
}).then(function (html) {
let resultType = $(html).find('div.common_box1bottom > p.mb10 > img').attr('alt'),
expNum = $(html).find('p.new_union_result_para > strong.red').text();
if (resultType.match(/合成方法/)) {
console.log(postData);
exit('エラー:合成失敗');
finished = true;
}
else {
log(`⇒ ${resultType} : exp ${expNum} 獲得`);
let nextLvSum = 0;
$(html).find('div.new_union_result_detail > div.skill_result').each(function () {
let $title = $(this).find('p.title'),
name = $title.text().match(/([^LV\s]+)LV/),
lv = 0,
exp_info = 0,
exp_bar_width = "0%";
let title_text = $title.text().match(/\s/g);
if (title_text !== null) {
if (title_text.length >= 2) {
title_text = $title.text().replace(/(.*)LV\d+/, '');
name = title_text.match(/([^LV\s]+)LV/);
}
}
if (name) {
name = name[1];
}
else {
name = $title.text().match(/([^LV\s]+)\sLV/)[1];
}
$(html).find('span.ig_skill_name').each(function () {
let matches = $(this).text().match(/(\S+)LV(\d+)/);
if (!matches) matches = $(this).text().match(/(\S+)\sLV(\d+)/);
if (matches && matches.length > 2 && matches[1] == name)
lv = Number(matches[2]);
});
if (lv < 10) exp_info = $(this).find('div.next_exp').children().eq(0).find('span.num').data('last_exp');
if (lv >= targetLv) {
$('table.skill_list_table').find('td.name').each(function () {
let matches = $(this).text().match(/(\S+)LV(\d+)/);
if (!matches) matches = $(this).text().match(/(\S+)\sLV(\d+)/);
if (matches && matches.length > 2 && matches[1] == name) {
$(this).prev().children().eq(0).prop('checked', false);
getSkillIds();
if (!(skill_id.length)) finished = true;
}
});
}
exp_bar_width = $(this).data('last_skill_per') + "%";
$('table.skill_list_table > tbody > tr').each(function (index) {
let matches = $(this).find('td.name').text().match(/(\S+)LV(\d+)/);
if (!matches) matches = $(this).find('td.name').text().match(/(\S+)\sLV(\d+)/);
if (matches && matches.length > 2 && matches[1] == name) {
let prevLv = Number(matches[2]);
if (prevLv != lv) {
let matches = $(this).find('th > input').val().match(/(\S+)(\d)/);
if (matches && matches.length > 2) {
$(this).find('th > input').val(matches[1] + (Number(matches[2]) + (lv - prevLv)));
getSkillIds();
}
else {
exit('エラー:スキルID更新エラー');
finished = true;
}
$(this).find('td.name').text(name + "LV" + lv);
$(this).find('td.name').animate({ 'backgroundColor': 'red' }, 1000);
if (lv < 10)
$(this).find('span.num').css({ 'width': '0%' });
}
$(this).find('td.next_lv').text(exp_info);
if (index != 3) {
$(this).find('td.next_lv.max').text((Number(exp_info) + RequireExp[10] - RequireExp[lv + 1]) || '-');
if ($.isNumeric($(this).find('td.next_lv.max').text())) {
nextLvSum += Number($(this).find('td.next_lv.max').text());
}
}
else {
$(this).find('td.next_lv.max').text((Number(exp_info) + RequireExpSkill4[10] - RequireExpSkill4[lv + 1]) || '-');
if ($.isNumeric($(this).find('td.next_lv.max').text())) {
nextLvSum += Number($(this).find('td.next_lv.max').text());
}
}
$(this).find('span.num').animate({ 'width': exp_bar_width }, 1000);
}
});
});
$('span.get_full_exp').text(nextLvSum);
}
jqXHRList = [];
cardInfoList = [];
if (exitFlg) {
finished = true;
exit('===処理が中断されました===');
}
if (errFlg) {
finished = true;
}
if (!finished) {
getKujiToken(kujiNum).then(function () {
castSenKuji('0', kujiNum, senkujiToken).then(skillLvUp);
}, function () {
exit('---合成終了---');
});
}
else {
getKujiToken(-1).then(function () {
exit('---合成終了---');
});
}
});
}
function getKujiToken(checkNum) {
let deferred = new $.Deferred;
if (exitFlg) {
exit('===処理が中断されました===');
deferred.reject();
return deferred.promise();
}
$.ajax(
{
type: 'post',
url: '/senkuji/senkuji.php',
beforeSend: xrwStatusText
}
).then(function (html) {
let nums = $(html).find('p.l_cardstock').text().match(/(\d+) \/ (\d+)/);
capaMargin = Number(nums[2]) - Number(nums[1]);
restDosen = Number($(html).find('span.money_b').text().replace("万", ""));
senkujiToken = $(html).find('input[name="senkuji_token"]').val(),
subId = $(html).find('input[name="sub_id"]').val() || 0;
log(`■所持枠空き: ${capaMargin}, 銅銭: ${restDosen}`);
if (checkNum > 0) {
if (capaMargin >= checkNum) {
if (restDosen >= 500 * checkNum) {
deferred.resolve();
}
else {
exit('銅銭が足りません');
deferred.reject();
}
}
else {
exit('カード所持枠が足りません');
deferred.reject();
}
}
else {
$('span.money_b').text(restDosen);
deferred.resolve();
}
}, function () {
exit('通信エラー:クジ画面取得失敗');
deferred.reject();
});
return deferred.promise();
}
function castSenKuji(t, n, token) {
let deferred = new $.Deferred;
let count = 0;
let excludeCnt = 0;
function cast(t, n, token, deferred) {
if (exitFlg) {
exit('===処理が中断されました===');
return deferred.reject();
}
$.ajax({
type: 'post',
url: '/senkuji/play_senkuji.php',
data: { send: 'send', got_type: t, senkuji_token: token, sub_id: subId, },
beforeSend: xrwStatusText
}).then(function (html) {
if (!$(html).find('div.cardstatus').length) {
log('エラー : 白くじ獲得失敗 [1000枚制限]');
errFlg = true;
if (count == 0) {
exit('---合成終了---');
return deferred.reject();
}
else {
log('===ここまでのカードを合成します===');
return deferred.resolve();
}
}
$(html).find('div.cardstatus').each(function () {
tenShots = false;
if ($('#TenShotsHidden').val() == '1') {
tenShots = true;
}
let $card = $(this).find('div.parameta_area');
let cardId = $card.find('span.commandsol_').attr('id').match(/card_commandsol_(\d+)/)[1];
let card_name = $(this).find('span.ig_card_name').text(),
rarity = $(this).find('span[class^="rarity_"]').attr('class').match(/rarity_([a-z]+)/)[1],
skill_name = $(this).find('span.ig_skill_name').text().match(/(\S+)LV/)[1],
exp = FixedExp[rarity] * CampaignFactor;
s = " [" + RarityName[rarity] + "] " + card_name + " (" + skill_name + ")";
if (excludeRarity.indexOf(rarity) == -1 && excludeNames.indexOf(card_name) == -1 && excludeSkills.indexOf(skill_name) == -1) {
log(s);
cardInfoList.push(new CardInfo(cardId, card_name, rarity, skill_name, exp));
}
else {
log(`${s} : 除外`);
excludeCnt++;
}
count++;
});
if ($(document).find('#whitecount').length) {
let Dt = new Date();
let now = Dt.getFullYear() + '/' + (Dt.getMonth() + 1) + '/' + Dt.getDate();
let storageKey = 'ixamoko_white_lottery';
if (document.body.classList.contains("current_owner_sub")) {
storageKey = 'zs_' + storageKey;
}
let whiteLottery = window.localStorage.getItem(storageKey);
if (whiteLottery) {
whiteLottery = JSON.parse(whiteLottery);
}
else {
whiteLottery = {"date": now, "count": 0};
}
if(whiteLottery.date !== now) {
whiteLottery = {"date": now, "count": 0};
}
let gotType = t == '1320' ? 10 : 1;
let newWhtCnt = Number(whiteLottery.count) + gotType;
let wcStr = '今日引ける枚数: ' + newWhtCnt + '/1000';
$(document).find('#whitecount').text(wcStr);
whiteLottery = {"date": now, "count": newWhtCnt};
localStorage.setItem(storageKey, JSON.stringify(whiteLottery));
}
if (tenShots && cardInfoList.length == 0) {
log(`素材: ${cardInfoList.length} 枚取得[除外 ${excludeCnt} 枚] --- 再度10連`);
setTimeout(cast.bind(null, t, n, token, deferred), WaitTime);
}
let totalRequiredExp = Number($('span.get_full_exp').text()),
expectedExp = cardInfoList.reduce((sum, elm) => sum + elm.exp, 0);
$('table.skill_list_table.powerup tr').each(function(idx, elm) {
if ($(this).find('input.skill_radio')) {
if ($(this).find('input.skill_radio').prop('checked')) {
if (idx == 3) {
totalRequiredExp -= (RequireExpSkill4[10] - RequireExpSkill4[targetLv]);
} else {
totalRequiredExp -= (RequireExp[10] - RequireExp[targetLv]);
}
}
}
});
if (expectedExp >= totalRequiredExp) {
log(`素材 ${cardInfoList.length} 枚取得完了[除外 ${excludeCnt} 枚] : 必要経験値到達`);
return deferred.resolve();
}
if (!tenShots) {
if (kujiNum - cardInfoList.length <= 10) {
t = '0';
}
if (cardInfoList.length < kujiNum) {
if (count < n) {
setTimeout(cast.bind(null, t, n, token, deferred), WaitTime);
}
else {
let m = kujiNum - cardInfoList.length;
count = 0;
log(`${m} 枚不足`);
getKujiToken(m).then(function () {
if (exitFlg) {
exit('===処理が中断されました===');
return deferred.reject();
}
setTimeout(cast.bind(null, t, m, token, deferred), WaitTime);
}, function () {
exit('---合成終了---');
deferred.reject();
});
}
}
else {
log(`素材 ${cardInfoList.length} 枚取得完了[除外 ${excludeCnt} 枚]`);
deferred.resolve();
}
}
else {
if (cardInfoList.length + 10 <= kujiNum) {
let nums2 = $(html).find('p.l_cardstock').text().match(/(\d+) \/ (\d+)/);
capaMargin2 = Number(nums2[2]) - Number(nums2[1]);
restDosen2 = Number($(html).find('span.money_b').text().replace("万", ""));
if (capaMargin2 < 10) {
log('カード所持枠が足りなくなりました');
log('===合成を実行します===');
log(`素材 ${cardInfoList.length} 枚取得[除外 ${excludeCnt} 枚]`);
return deferred.resolve();
}
else if (restDosen2 < 5000) {
errFlg = true;
log('銅銭が足りなくなりました');
log('===ここまでのカードを合成します===');
log(`素材 ${cardInfoList.length} 枚取得[除外 ${excludeCnt} 枚]`);
return deferred.resolve();
}
else {
setTimeout(cast.bind(null, t, n, token, deferred), WaitTime);
}
}
else {
log(`素材 ${cardInfoList.length} 枚取得完了[除外 ${excludeCnt} 枚]`);
deferred.resolve();
}
}
}, function () {
exit('通信エラー:くじ引き失敗');
deferred.reject();
});
}
if (n >= 10) t = '1320';
log(`白くじ ${n} 枚引き中...`);
cast(t, n, token, deferred);
return deferred.promise();
}
function getSkillIds() {
if (true === skill_level_exp_collect_enable) {
skill_id = $('input[name="skill_radio[]"]:checked').map(function () {
let matches = $(this).parent().next().text().match(/(\S+)LV(\d+)/);
if (!matches) matches = $(this).parent().next().text().match(/(\S+)\sLV(\d+)/);
if (matches && matches.length > 2) {
let lv = Number(matches[2]);
if (lv < targetLv) {
skillIdList[matches[1]] = $(this).val();
return $(this).val();
}
else {
log(`${matches[1]} は既に LV${targetLv} 以上です`);
$(this).prop('checked', false);
}
}
}).get();
}
else {
skill_id = $('input[name="skill_radio"]:checked').val();
}
if (skill_id.length)
$('input[name="selected_skill_radio"]').val(skill_id.join(','));
}
function exit(s) {
log(s);
$submit.val('開始');
$submit.prop('disabled', false);
$submit.css({ 'background-image': '-webkit-gradient(linear, left top, left bottom, from(#C44), to(#611))', });
$submit.on('click', autoSkillLvUp.bind(null, $('input[name="base_cid"]').val()));
$inputselect.prop('disabled', false);
$exit.prop('disabled', true);
$exit.css({ 'background-image': '-webkit-gradient(linear, left top, left bottom, from(#444), to(#666))', });
$('#ASSetMax').css({ 'background-image': '-webkit-gradient(linear, left top, left bottom, from(#C44), to(#611))', });
exitFlg = false;
errFlg = false;
if (Number($('#SenKujiNum').val()) % 10 == 0) {
$('#TenShots').prop('disabled', false);
}
else {
$('#TenShots').prop('disabled', true);
}
if ($('#TenShots').prop('checked') && !$('#TenShots').prop('disabled')) {
$('#TenShotsHidden').val('1');
}
else {
$('#TenShotsHidden').val('0');
}
}
if (!(targetLv >= 2 && targetLv <= 10)) {
exit('エラー:目標レベルを入力して下さい(2~10)');
return;
}
if (!(kujiNum >= 1 && kujiNum <= 100)) {
exit('エラー:素材カード数/回を入力して下さい(1~100)');
return;
}
if (eval($('#ExcludeJou').prop('checked'))) excludeRarity.push('jou');
if (eval($('#ExcludeToku').prop('checked'))) excludeRarity.push('toku');
excludeNames = $('#ExcludeNames').val().split(',');
excludeSkills = $('#ExcludeSkills').val().split(',');
getSkillIds();
if (skill_id.length) {
getKujiToken(kujiNum).then(function () {
castSenKuji('0', kujiNum, senkujiToken).then(skillLvUp);
}, function () {
exit('---合成終了---');
});
}
else {
exit('強化するスキルを選んでください');
}
}
function setMaxMaterial() {
localStorage.setItem('AutoSynthesis_TargetLv', $('#TargetLv').val());
localStorage.setItem('AutoSynthesis_SenKujiNum', $('#SenKujiNum').val());
localStorage.setItem('AutoSynthesis_ExcludeJou', $('#ExcludeJou').prop('checked'));
localStorage.setItem('AutoSynthesis_ExcludeToku', $('#ExcludeToku').prop('checked'));
localStorage.setItem('AutoSynthesis_ExcludeNames', $('#ExcludeNames').val());
localStorage.setItem('AutoSynthesis_ExcludeSkills', $('#ExcludeSkills').val());
localStorage.setItem('AutoSynthesis_TenShots', $('#TenShots').prop('checked'));
localStorage.setItem('AutoSynthesis_TenShotsHidden', $('#TenShotsHidden').val());
localStorage.setItem('AutoSynthesis_ExcludeRank', $('#ExcludeRank').prop('checked'));
localStorage.setItem('AutoSynthesis_ExcludeLevel', $('#ExcludeLevel').prop('checked'));
localStorage.setItem('AutoSynthesis_ExcludeAdditional', $('#ExcludeAdditional').prop('checked'));
localStorage.setItem('AutoSynthesis_ExcludeRareCard', $('#ExcludeRareCard').prop('checked'));
$(document).find('#ASSetMax').css({ 'background-image': '-webkit-gradient(linear, left top, left bottom, from(#444), to(#666))', }).prop('disabled', true);
let scrl = $(document).find('#scrl_div');
let list = [];
$('div.new_union_material_list div.union_material').each(function() {
list.push($(this).attr('data-card_id'));
});
let fullExp = Number($('span.get_full_exp').text()),
setCnt = 0,
reloadFlg = true;
$('img[alt="セットする"]').each(function() {
if ($(this).closest('a').attr('style') == 'display:none;') {
return true;
}
let materialId = $(this).closest('a').attr('id').match(/card_set_btn_(\d+)/)[1];
if (list.includes(materialId)) {
return true;
}
if ($(document).find('#ExcludeRank').prop('checked')) {
let star = $(this).closest('tr').find('div.rank span.rank_glay').text().trim() || '';
if (star != '★★★★★') {
return true;
}
}
if ($(document).find('#ExcludeLevel').prop('checked')) {
let level = $(this).closest('tr').find('div.rank').closest('td').find('div:eq(1)').text().trim() || '20';
if (level != '0') {
return true;
}
}
if ($(document).find('#ExcludeAdditional').prop('checked')) {
let arrSkill = [];
$(this).closest('tr').find('div.skill_name').each(function() {
arrSkill.push($(this).text().trim() || '-');
});
if (arrSkill.filter((v) => {return v != '-';}).length != 1) {
return true;
}
}
if ($(document).find('#ExcludeRareCard').prop('checked')) {
let bushoRarity = $(this).closest('tr').find('div[class^="icon_rarity_"]').attr('class').replace('icon_rarity_', '');
if (!['jo', 'jou'].includes(bushoRarity)) {
return true;
}
}
let excludeName = $('#ExcludeNames').val().split(',');
if (excludeName) {
let bushoName = $(this).closest('tr').find('a.busho_name').text().trim() || '';
if (excludeName.includes(bushoName)) {
return true;
}
}
let excludeSkill = $('#ExcludeSkills').val().split(',');
if (excludeSkill) {
let skillName = $(this).closest('tr').find('div.skill_name:first').text().trim() || '';
if (excludeSkill.includes(skillName)) {
return true;
}
}
if (Number($('div.composite_box_exp.point').text().match(/\d+/)[0] || 0) >= fullExp) {
reloadFlg = false;
scrl.scrollTop(scrl[0].scrollHeight);
alert('必要経験値に達しました');
return false;
}
$(this).trigger('click');
++setCnt;
if ($('div.union_material:last #exp_data').text() != '-') {
reloadFlg = false;
scrl.scrollTop(scrl[0].scrollHeight);
alert('最大枚数をセットしました');
return false;
}
});
let nextPage = $('#bar_card:eq(0) ul.pager li.last a:eq(0)');
if (setCnt == 0) {
if (confirm('セット可能なカードがありません\n次ページへ遷移しますか?')) {
if (nextPage.length) {
nextPage.trigger('click');
}
else {
scrl.scrollTop(scrl[0].scrollHeight);
alert('最終ページまでセットしました');
return false;
}
}
}
else if (reloadFlg) {
if (nextPage.length) {
nextPage.trigger('click');
}
else {
scrl.scrollTop(scrl[0].scrollHeight);
alert('最終ページまでセットしました');
}
}
scrl.scrollTop(scrl[0].scrollHeight);
}
if (location.pathname == '/union/levelup.php') {
const createOptions = function (id, start, end, selected) {
let str = '<select id="' + id + '">';
for (let n = start; n <= end; n++) {
str += '<option value="' + n + '"';
if (n == selected) {
str += ' selected';
}
str += '>' + n + '</option>';
}
str += '</select>';
return str;
}
const cssClass = [
".AS_header { margin-bottom: 2px; padding: 5px; background-color: rgb(197,181,96); color: black;" +
'font: bold 18px/140% "MS 明朝", serif; text-align: center; text-shadow: 1px 1px 1px rgba(0,0,0,0.1), -1px 1px 1px rgba(0,0,0,0.1), 1px -1px 1px rgba(0,0,0,0.1), -1px -1px 1px rgba(0,0,0,0.1); }',
".AS_contents { " + 'font-family: "MS 明朝"; ' + "display: flex; align-items: top; height: 340px; padding: 4px; background-color: rgb(43,41,37); }",
".AS_inputBoxContainer { width: 430px; margin-right: 5px; background-color: rgb(43,41,37); }",
".AS_inputInlineContainer { display: flex; align-items: center; padding: 2px; background-color: rgb(43,41,37); }",
".AS_inputText1 { width: 45px; height: 20px; border: none; border-bottom: white 1px solid; background-color: rgb(43,41,37); color: white; }",
".AS_inputText2 { flex: 1; border: none; border-bottom: white 1px solid; background-color: rgb(43,41,37); color: white; }",
'.AS_logTextBox { flex: 1; align-self: stretch; border: white 1px solid; padding: 2px; background-color: rgb(24,24,24); color: white; font:12px/110% "MS 明朝", serif; }',
];
let style = document.createElement("style");
document.head.appendChild(style);
let sheet = style.sheet;
for (let i = 0; i < cssClass.length; i++) {
sheet.insertRule(cssClass[i], sheet.cssRules.length);
}
let $menu = $('<div id="AutoSkillUpMenu">').css({ 'margin': '10px 16.5px', 'color': 'white', });
let $head = $('<div>').addClass('AS_header').text('自動レベルアップ ').appendTo($menu);
$('<img src="../img/lot/lot_tab_title_white10.png" alt="戦国くじ【白】拾連">').css({ 'display': 'inline', 'vertical-align': 'middle', 'width': '57px', 'height': '20px', 'margin-bottom': '4px', }).appendTo($head);
$head.prop('innerHTML', $head.prop('innerHTML') + '&素材100枚 対応版');
let $contents = $('<div>').addClass('AS_contents').appendTo($menu);
let $inputBox = $('<div>').addClass('AS_inputBoxContainer').appendTo($contents);
let $inputs = $('<div>').addClass('AS_inputInlineContainer').appendTo($inputBox);
$('<p>').css({ 'height': '1px', }).appendTo($inputs);
$inputs = $('<div>').addClass('AS_inputInlineContainer').appendTo($inputBox);
$('<label for="TargetLv">').css({ 'padding': '0px 5px 0px 5px', }).text('目標スキルLV').appendTo($inputs);
$(createOptions('TargetLv', 2, 10, localStorage.getItem('AutoSynthesis_TargetLv') || 10)).addClass('AS_inputText1').appendTo($inputs)
$('<label for="SenKujiNum">').css({ 'padding': '0px 10px 0px 25px', }).text('素材カード数/回').appendTo($inputs);
$(createOptions('SenKujiNum', 1, 12, localStorage.getItem('AutoSynthesis_SenKujiNum') || 12)).addClass('AS_inputText1').appendTo($inputs);
$('<input id="ASExit" type="button" value="停止" disabled>').css({
'width': '50px', 'padding': '2px 5px', 'border': 'white 1px solid', 'border-radius': '5px', 'background-color': '#BBB', 'color': 'white',
'background-image': '-webkit-gradient(linear, left top, left bottom, from(#444), to(#666))', 'margin-left': 'auto',
}).appendTo($inputs);
$inputs = $('<div>').addClass('AS_inputInlineContainer').appendTo($inputBox);
$('<label>').css({ 'padding': '0px 5px 0px 5px', 'height': '20px', 'display': 'flex', 'align-items': 'center', }).text('除外レア ').appendTo($inputs);
$('<input id="ExcludeJou" type="checkbox">').css({ 'margin-right': '2px', }).appendTo($inputs);
$('<img src = "../img/card/icon/icon_jou.png">').css({ 'width': '18px', 'height': '18px', }).appendTo($inputs);
$('<input id="ExcludeToku" type="checkbox">').css({ 'margin': '0px 2px 0px 12px', }).appendTo($inputs);
$('<img src = "../img/card/icon/icon_toku.png">').css({ 'width': '18px', 'height': '18px', }).appendTo($inputs);
$inputs = $('<div>').addClass('AS_inputInlineContainer').css('margin-bottom', '1px').appendTo($inputBox);
$('<label for="ExcludeNames">').css({ 'padding': '0px 5px', }).text('除外武将名 ').appendTo($inputs);
$(`<input id="ExcludeNames" type="text" value="${localStorage.getItem('AutoSynthesis_ExcludeNames') || ''}">`).addClass('AS_inputText2').appendTo($inputs);
$inputs = $('<div>').addClass('AS_inputInlineContainer').appendTo($inputBox);
$('<label for="ExcludeSkills">').css({ 'padding': '0px 5px', }).text('除外スキル ').appendTo($inputs);
$(`<input id="ExcludeSkills" type="text" value="${localStorage.getItem('AutoSynthesis_ExcludeSkills') || ''}">`).addClass('AS_inputText2').appendTo($inputs);
$inputs = $('<div>').addClass('AS_inputInlineContainer').appendTo($inputBox);
$('<label for="TenShots">').css({ 'padding': '0px 5px 0px 5px', 'height': '20px', 'display': 'flex', 'align-items': 'center', }).text('10連のみ ').appendTo($inputs);
$('<input id="TenShots" type="checkbox">').appendTo($inputs);
$('<input id="TenShotsHidden" type="hidden" value="0">').appendTo($inputs);
$('<label>素材カード数が10の倍数の時のみ選択可能(引き直し無し)</label>').appendTo($inputs);
$inputs = $('<div>').addClass('AS_inputInlineContainer').appendTo($inputBox);
$('<input id="ASSubmit" type="button" value="開始">').css({
'flex': '1', 'padding': '2px 5px', 'border': 'white 1px solid', 'border-radius': '5px', 'background-color': 'rgb(168,41,37)', 'color': 'white',
'background-image': '-webkit-gradient(linear, left top, left bottom, from(#C44), to(#611))',
}).appendTo($inputs).on('click', autoSkillLvUp.bind(null, $('input[name="base_cid"]').val()));
$inputs = $('<div> </div>').addClass('AS_inputInlineContainer').appendTo($inputBox);
$inputs = $('<div>').addClass('AS_inputInlineContainer').appendTo($inputBox);
$('<span style="font-weight: bold;">余りカード処理 追加条件(除外武将・除外スキルも考慮)</span>').appendTo($inputs);
$inputs = $('<div class="AS_AddionalCriteria">').addClass('AS_inputInlineContainer').appendTo($inputBox);
$('<label for="ExcludeRank"><input id="ExcludeRank" type="checkbox">★1以上を除外(★0のみ)</label>').appendTo($inputs);
$inputs = $('<div class="AS_AddionalCriteria">').addClass('AS_inputInlineContainer').appendTo($inputBox);
$('<label for="ExcludeLevel"><input id="ExcludeLevel" type="checkbox">レベル1~20を除外(レベル0のみ)</label>').appendTo($inputs);
$inputs = $('<div class="AS_AddionalCriteria">').addClass('AS_inputInlineContainer').appendTo($inputBox);
$('<label for="ExcludeAdditional"><input id="ExcludeAdditional" type="checkbox">追加スキルを持つ武将を除外</label>').appendTo($inputs);
$inputs = $('<div class="AS_AddionalCriteria">').addClass('AS_inputInlineContainer').appendTo($inputBox);
$('<label for="ExcludeRareCard"><input id="ExcludeRareCard" type="checkbox">特以上を除外</label>').appendTo($inputs);
$inputs = $('<div>').addClass('AS_inputInlineContainer').appendTo($inputBox);
$('<input id="ASSetMax" type="button" value="全ての条件でこのページの待機武将から最大セットして次ページ">').css({
'flex': '1', 'padding': '2px 5px', 'border': 'white 1px solid', 'border-radius': '5px', 'background-color': 'rgb(168,41,37)', 'color': 'white',
'background-image': '-webkit-gradient(linear, left top, left bottom, from(#C44), to(#611))',
}).appendTo($inputs).on('click', setMaxMaterial);
$LogBox = $('<textarea id="LogBox" type="textbox" value="">').addClass('AS_logTextBox').appendTo($contents);
if ($('.ig_deck_subcardarea').find('#id_deck_card1_front').length) {
$('table#cardslot_table').after($menu);
}
$('.AS_AddionalCriteria').find('label').css({ 'padding': '0px 5px 0px 5px', 'height': '20px', 'display': 'flex', 'align-items': 'center', });
$('.AS_AddionalCriteria').find('input').css({ 'margin-right': '2px', });
for (let r = 20; r <= 100; r = r + 10) {
$(document).find('#SenKujiNum').append($('<option value="' + r + '">' + r + '</option>'));
}
let storageVal = localStorage.getItem('AutoSynthesis_SenKujiNum');
if (storageVal) {
$(document).find('#SenKujiNum').val(storageVal);
}
else {
$(document).find('#SenKujiNum').val('100');
}
if (eval(localStorage.getItem('AutoSynthesis_ExcludeJou'))) $('#ExcludeJou').prop('checked', true);
if (eval(localStorage.getItem('AutoSynthesis_ExcludeToku'))) $('#ExcludeToku').prop('checked', true);
if (eval(localStorage.getItem('AutoSynthesis_TenShots'))) $('#TenShots').prop('checked', true);
if (eval(localStorage.getItem('AutoSynthesis_ExcludeRank'))) $('#ExcludeRank').prop('checked', true);
if (eval(localStorage.getItem('AutoSynthesis_ExcludeLevel'))) $('#ExcludeLevel').prop('checked', true);
if (eval(localStorage.getItem('AutoSynthesis_ExcludeAdditional'))) $('#ExcludeAdditional').prop('checked', true);
if (eval(localStorage.getItem('AutoSynthesis_ExcludeRareCard'))) $('#ExcludeRareCard').prop('checked', true);
if (Number($('#SenKujiNum').val()) % 10 == 0) {
$('#TenShots').prop('disabled', false);
}
else {
$('#TenShots').prop('disabled', true);
}
if ($('#TenShots').prop('checked') && !$('#TenShots').prop('disabled')) {
$('#TenShotsHidden').val('1');
}
let scrollDiv = $('<div id="scrl_div" style="width: 459px; height: 317px; overflow-x: hidden; overflow-y: auto;">');
$('#busho_info').wrapAll(scrollDiv);
$(document).on('load ajaxStop', function() {
$(document).find('#scrl_div').scrollTop($(document).find('#scrl_div')[0].scrollHeight);
});
}
$('#SenKujiNum').on('change', function () {
if (Number($(this).val()) % 10 == 0) {
$('#TenShots').prop('disabled', false);
if ($('#TenShots').prop('checked')) {
$('#TenShotsHidden').val('1');
}
else {
$('#TenShotsHidden').val('0');
}
}
else {
$('#TenShots').prop('disabled', true);
$('#TenShotsHidden').val('0');
}
});
$('#ASExit').on('click', function () {
exitFlg = true;
return false;
});
}
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', loadAutoSynthesis);
}
else {
loadAutoSynthesis();
}