Skip to content

Instantly share code, notes, and snippets.

@gaogao-9
Last active December 7, 2016 15:35
Show Gist options
  • Save gaogao-9/f0ebe1145f858d40cbaeb33ecb72ee75 to your computer and use it in GitHub Desktop.
Save gaogao-9/f0ebe1145f858d40cbaeb33ecb72ee75 to your computer and use it in GitHub Desktop.
好感度700のカンストSRリンと、同条件ナターシャにおいて、それぞれが最速でスキルを発動していくといて、敵防御毎で、何秒経過後にナターシャの合計ダメージが、リンの合計ダメージを上回るかのリスト
敵防御力 逆転時間 リン合計ダメージ(目安) ナターシャ合計ダメージ(目安)
0~69 4 9318 9802
70~170 12 54648 56452
171~459 13 61635 67684
460~496 14 63504 64302
497~699 15 70443 75512
700~779 18 93834 96140
780~1038 19 90714 98176
1039~1180 20 86814 90262
1181~1309 21 80850 83774
1310~1546 22 75432 80778
1547~1616 26 74832 76490
1617~1681 28 75939 77642
1682~1797 31 76896 80356
1798~1816 35 78480 79122
1817~1847 37 81207 82328
1848~1913 40 83028 85660
1914~1918 44 85824 86014
1919~1964 47 89025 91274
1965~1976 53 95844 96514
1977~2009 56 98223 100210
2010~2014 62 105216 105550
2015~2039 65 108009 109802
2040~2041 77 140712 140824
2042~2053 78 140448 141578
2054~2057 80 142020 142364
2058~2064 85 147768 148504
2065~2068 87 149904 150258
2069~2077 94 158661 159674
2078~2080 96 160368 160634
2081~2087 103 169125 170018
2088~2090 105 171024 171298
2091~2094 110 176610 177088
2095~2096 112 178947 179156
2097~2102 119 187674 188452
2103~2103 136 225675 225736
2104~2106 141 231462 231866
2107~2107 143 233766 233852
2108~2108 145 236526 236670
2109~2109 148 239280 239476
2110~2111 150 242028 242270
2112~2112 152 244524 244600
2113~2114 157 250236 250580
2115~2115 159 252705 252856
2116~2116 161 255420 255584
2117~2118 166 261096 261492
2119~2119 168 263529 263696
2120~2120 170 266220 266376
2121~2121 173 268905 269044
2122~2122 175 271584 271700
2123~2123 176 274257 274344
2124~2125 195 312276 312676
2126~2128 204 323400 324044
2129~2130 211 331203 331556
2131~2132 220 342225 342720
2133~2134 229 353199 353788
2135~2135 260 407820 407936
2136~2136 267 416130 416380
2137~2137 269 418608 418644
2138 276 426888 427028
var ナターシャ攻撃力 = Math.floor(762 * 1.16); // SR
var ナターシャ攻撃速度 = Math.floor(101 * 1.31); // SR
/*
var ナターシャ攻撃力 = Math.floor(1069 * 1.16); // SSR
var ナターシャ攻撃速度 = Math.floor(169 * 1.31); // SSR
*/
var ナターシャ攻撃回数 = 2;
var ナターシャスキル倍率 = 2.0;
var リン攻撃力 = Math.floor(2678 * 1.16); // SR
var リン攻撃速度 = Math.floor(34 * 1.31); // SR
/*
var リン攻撃力 = Math.floor(3596 * 1.16); // SSR
var リン攻撃速度 = Math.floor(57 * 1.31); // SSR
*/
var リン攻撃回数 = 3;
var リンスキル倍率 = 2.5;
var 合計ダメージ = 0;
var リンスキル発動秒数関数 = createスキル発動秒数関数(10, 55, 8);
var ナターシャスキル発動秒数関数 = createスキル発動秒数関数(10, 55, 10);
console.log("| 敵防御力 | 逆転時間 | リン合計ダメージ(目安) | ナターシャ合計ダメージ(目安) |");
console.log("|----------|----------|------------------------|------------------------------|");
var 逆転時間 = null;
var 敵防御 = 0;
var _リン合計ダメージ = null;
var _ナターシャ合計ダメージ = null;
for(let 敵防御力=0;敵防御力<3000;++敵防御力){
for(let 経過秒数=0;経過秒数<=3000;経過秒数++){
const ナターシャスキル発動秒数 = ナターシャスキル発動秒数関数(経過秒数);
const ナターシャ非スキル発動秒数 = 経過秒数 - ナターシャスキル発動秒数;
const ナターシャ実質攻撃回数 = Math.floor(ナターシャスキル発動秒数*ナターシャ攻撃速度/100*ナターシャスキル倍率 + ナターシャ非スキル発動秒数*ナターシャ攻撃速度/100);
let ナターシャ合計ダメージ = 0;
for(let i=1;i<=ナターシャ実質攻撃回数;++i){
ナターシャ合計ダメージ += ナターシャ攻撃回数 * Math.max(ナターシャダメージ(ナターシャ攻撃力, i) - 敵防御力, Math.floor(ナターシャダメージ(ナターシャ攻撃力, i)*0.05));
}
const リンスキル発動秒数 = リンスキル発動秒数関数(経過秒数);
const リン非スキル発動秒数 = 経過秒数 - リンスキル発動秒数;
const リン実質攻撃回数 = Math.floor(リンスキル発動秒数*リン攻撃速度/100*リンスキル倍率 + リン非スキル発動秒数*リン攻撃速度/100);
let リン合計ダメージ = 0;
for(let i=1;i<=リン実質攻撃回数;++i){
リン合計ダメージ += リン攻撃回数 * Math.max(リンダメージ(リン攻撃力, i) - 敵防御力, Math.floor(リンダメージ(リン攻撃力, i)*0.05));
}
if(!ナターシャ実質攻撃回数 || !リン実質攻撃回数) continue;
if(ナターシャ合計ダメージ > リン合計ダメージ){
if(逆転時間 !== 経過秒数){
if(逆転時間 !== null){
//console.log(`敵防御: ${敵防御}~${敵防御力-1}, 逆転時間: ${逆転時間}`);
console.log(`| ${敵防御}~${敵防御力-1} | ${逆転時間} | ${_リン合計ダメージ} | ${_ナターシャ合計ダメージ} |`);
}
逆転時間 = 経過秒数;
敵防御 = 敵防御力;
_リン合計ダメージ = リン合計ダメージ;
_ナターシャ合計ダメージ = ナターシャ合計ダメージ;
}
break;
}
}
}
function createスキル発動秒数関数(初期秒数, インターバル秒数, 発動時間){
return function スキル発動秒数関数(秒数){
for(var i=0;;i++){
if(秒数 < (初期秒数 + インターバル秒数*i)) return Math.min(秒数 - (初期秒数 + インターバル秒数*(i-1)) + 発動時間*(i-1), 発動時間*i);
}
};
}
function リンダメージ(補正後攻撃力, 回数){
return 補正後攻撃力;
}
function ナターシャダメージ(補正後攻撃力, 回数){
const レート = Math.min(3 - (Math.floor(2000 * logN(15 - (Math.min(回数-1, 15)), 15)) / 1000), 3);
return Math.floor(補正後攻撃力 * レート);
}
function logN(真数, 底){
return Math.log(真数) / Math.log(底);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment