dmgCalc
by Sure Sure
HTML
【Notice】<br>
<p>※スマホは画面を横向きにしてお使いくださいOTZ</p>
<p>※弱点有無は有り(1)、無し(0)を指定してください。</p>
<p>※カットイン補正は通常カットイン(1.0)、稲妻カットイン(1.5)を指定してください。</p>
<p>※ユニット名はメモ用にご自由にどうぞ。</p>
<br>
【Input】
<table>
<thead>
<tr>
<td>項目名</td>
<td>Unit1</td>
<td>Unit2</td>
<td>Unit3</td>
<td>Unit4</td>
<td>Unit5</td>
<td>Unit6</td>
</tr>
</thead>
<tr>
<td>ユニット名</td>
<td><INPUT TYPE="text" id="name1" VALUE="" SIZE=5/></td>
<td><INPUT TYPE="text" id="name2" VALUE="" SIZE=5/></td>
<td><INPUT TYPE="text" id="name3" VALUE="" SIZE=5/></td>
<td><INPUT TYPE="text" id="name4" VALUE="" SIZE=5/></td>
<td><INPUT TYPE="text" id="name5" VALUE="" SIZE=5/></td>
<td><INPUT TYPE="text" id="name6" VALUE="" SIZE=5/></td>
</tr>
<tr>
<td>ユニット攻撃力</td>
<td><INPUT TYPE="number" id="base_atk1" VALUE="10000" SIZE=5/></td>
<td><INPUT TYPE="number" id="base_atk2" VALUE="10000" SIZE=5/></td>
<td><INPUT TYPE="number" id="base_atk3" VALUE="10000" SIZE=5/></td>
<td><INPUT TYPE="number" id="base_atk4" VALUE="10000" SIZE=5/></td>
<td><INPUT TYPE="number" id="base_atk5" VALUE="0" SIZE=5/></td>
<td><INPUT TYPE="number" id="base_atk6" VALUE="0" SIZE=5/></td>
</tr>
<tr>
<td>攻撃力ボーナス</td>
<td><INPUT TYPE="number" id="bonus_atk1" VALUE="0" SIZE=5/></td>
<td><INPUT TYPE="number" id="bonus_atk2" VALUE="0" SIZE=5/></td>
<td><INPUT TYPE="number" id="bonus_atk3" VALUE="0" SIZE=5/></td>
<td><INPUT TYPE="number" id="bonus_atk4" VALUE="0" SIZE=5/></td>
<td><INPUT TYPE="number" id="bonus_atk5" VALUE="0" SIZE=5/></td>
<td><INPUT TYPE="number" id="bonus_atk6" VALUE="0" SIZE=5/></td>
</tr>
<tr>
<td>特化ダメージ</td>
<td><INPUT TYPE="number" id="bonus_dmg1" VALUE="0" SIZE=5/></td>
<td><INPUT TYPE="number" id="bonus_dmg2" VALUE="0" SIZE=5/></td>
<td><INPUT TYPE="number" id="bonus_dmg3" VALUE="0" SIZE=5/></td>
<td><INPUT TYPE="number" id="bonus_dmg4" VALUE="0" SIZE=5/></td>
<td><INPUT TYPE="number" id="bonus_dmg5" VALUE="0" SIZE=5/></td>
<td><INPUT TYPE="number" id="bonus_dmg6" VALUE="0" SIZE=5/></td>
</tr>
<tr>
<td>アサルト補正率</td>
<td><INPUT TYPE="number"...
CSS
p {
font-size: x-small;
}
td {
white-space: nowrap;
margin: 1px;
padding: 1px;
border: none;
font-size: x-small;
}
tr td:nth-of-type(1){
// background-color: white;
}
thead {
color: white;
font-size: x-small;
}
thead td:nth-of-type(1),thead td{
background-color: seagreen;
text-align:center;
}
input{
font-size: x-small;
}
input[type=number] {
text-align: right;
width: 95%;
}
input[type=text] {
text-align: center;
width: 95%;
}
input[type=button] {
text-align:center;
width: 95%;
}
@media only screen and (max-device-width: 480px) {
/* デバイス幅によって以下を適用 */
p {
font-size: xx-small;
}
td {
white-space: nowrap;
margin: 0px;
padding: 0px;
border: none;
font-size: xx-small;
}
thead {
margin: 0px;
padding: 0px;
border: none;
color: white;
font-size: xx-small;
}
thead td:nth-of-type(1),thead td{
margin: 0px;
padding: 0px;
border: none;
background-color: seagreen;
text-align:center;
font-size: xx-small;
}
input[type=number] {
width: 60%;
font-size: xx-small;
}
input[type=button] {
text-align:center;
font-size: xx-small;
width: 80%;
}
}
JavaScript
/***************************
Powered by Sure
Tuned by Mr.Gran @ all of thanks
/***************************
/***************************
//計算ボタン押下時メイン処理
****************************/
function calc() {
//初期化
var party_hit = 0;
var party_base_dmg = 0;
var party_full_dmg = 0;
var party_exp_dmg = 0;
//画面入力値取得
for (i = 1; i < 7; i++) {
var num = [i]; //列番号
//入力値読込み
//整数型は整数型に
//小数型は5桁切上げに
//ユニット攻撃力
var base_atk = parseInt($('base_atk' + num).value);
//攻撃力ボーナス
var bonus_atk = parseInt($('bonus_atk' + num).value);
//特化ダメージ
var bonus_dmg = parseInt($('bonus_dmg' + num).value);
//アサルト補正率
var assault_rate = (parseFloat($('assault_rate' + num).value) * 100000 + 0.5) / 100000;
//全力補正率
var full_rate = (parseFloat($('full_rate' + num).value) * 100000 + 0.5) / 100000;
//弱点補正
var bonus_weak = parseInt($('bonus_weak' + num).value);
//属性補正
var bonus_element = parseInt($('bonus_element' + num).value);
//属性補正数
var number_element = parseInt($('number_element' + num).value);
//チェイン補正
var chain_rate = Math.floor(parseFloat($('chain_rate' + num).value) * 100000 + 0.5) / 1000;
//ダメージ倍率
var multiple_rate = (parseFloat($('multiple_rate' + num).value) * 100000 + 0.5) / 100000;
//ヒット数
var number_hit = parseInt($('number_hit' + num).value);
//弱点有(1)無(0)
var weak_flg = $('weak_flg' + num).value;
//カットイン倍率
var cutin_rate = (parseFloat($('cutin_rate' + num).value) * 100000 + 0.5) / 100000;
//ユニット単位算出(戻り:json配列)
var jsonDmg = calc_dmg(num, base_atk, bonus_atk,
bonus_dmg, assault_rate, full_rate,
bonus_weak, bonus_element, number_element,
chain_rate, multiple_rate, number_hit, weak_flg, cutin_rate);
//ユニット単位出力
setUnitDmg(num, jsonDmg);
//パーティ合計Hit数計算
party_hit += number_hit;
//パーティ合計ダメージ計算
//基礎ダメージ(下限値)
party_base_dmg += jsonDmg["total_base_dmg"];
//全力ダメージ(上限値)
party_full_dmg +=...