GR3 ドロップシミュレータ
GR3のコンプリートに何回挑戦すればいいか、体感してみましょう。
by zohnam
HTML
<div name='stage' style='border:1px solid black;' data-charisma='30' data-stamina='2'>
<h4>ゴールドラッシュ 騎兵の挑戦</h4>
<div>
<button name='GR'>1回ずつ挑戦する</button>
<button name='complete'>コンプするまで挑戦する</button>
<div>
<label>
<input type='radio' name='zuttomo' value='0'>ズッ友なし(聖霊+0)</input>
</label>
<label>
<input type='radio' name='zuttomo' value='2'>ズッ友あり(聖霊+2)</input>
</label>
<label>
<input type='radio' name='zuttomo' value='3'>覚醒ズッ友あり(聖霊+3)</input>
</label>
</div>
<p> <span name='play'>0</span>回挑戦(消費カリスマ:<span name='charisma'>0</span> 消費スタミナ:<span name='stamina'>0</span>)</p>
<div name='item' data-drop='7'><span name='item_name'>騎兵オーブ</span>:<span name='count'>0</span>個(<span name='drop'></span>%:騎兵9匹目)</div>
<div name='item' data-drop='11'><span name='item_name'><img class='icon' title='ヴァレリー' src='http://i.gyazo.com/a13859c6ed41111e43b700f55ece52b6.png' /></span>:<span name='count'>0</span>個(<span name='drop'></span>%:斧ゴブ6連の最後)</div>
<div name='item' data-drop='61' data-count='2' data-zuttomo='true'><span name='item_name'><img class='icon' title='銀聖霊' src='http://i.gyazo.com/b0cfc4e5f70a5576fffc5d4949f91cc1.png' /></span>:<span name='count'>0</span>個(<span name='drop'></span>%:3連騎兵の下側、最後のキャリーさん)</div>
<div name='item'><span name='item_name'><img class='icon' title='キャリー' src='http://i.gyazo.com/288a1bd43dd5f46ec44f5b86fa4e5fb4.png' /></span>:<span name='count'>0</span>個</div>
</div>
<hr />
<div name="result"></div>
</div>
<div name='stage' style='border:1px solid black;' data-charisma='30' data-stamina='2'>
<h4>ゴールドラッシュ 決戦</h4>
<div>
<button name='GR'>1回ずつ挑戦する</button>
<button name='complete'>コンプするまで挑戦する</button>
<div>
<label>
<input type='radio' name='zuttomo' value='0'>ズッ友なし(聖霊+0)</input>
</label>
<label>
<input...
CSS
div[name='stage'] {
border : 1px solid black;
border-radius: 10px;
}
div[name='stage'] div {
padding : 5px;
}
h4 {
color : #ffffff;
font-weight : bold;
background-image: -webkit-gradient(linear, left top, right top, color-stop(0, #0015D1), color-stop(1, #EDCCD7));
background-image: -o-linear-gradient(right, #0015D1 0%, #EDCCD7 100%);
background-image: -moz-linear-gradient(right, #0015D1 0%, #EDCCD7 100%);
background-image: -webkit-linear-gradient(right, #0015D1 0%, #EDCCD7 100%);
background-image: -ms-linear-gradient(right, #0015D1 0%, #EDCCD7 100%);
background-image: linear-gradient(to right, #0015D1 0%, #EDCCD7 100%);
-webkit-border-top-left-radius : 10px;
-webkit-border-top-right-radius : 10px;
-moz-border-radius-topleft : 10px;
-moz-border-radius-topright : 10px;
padding : 10px;
margin : 0px 0px 10px;
}
.icon {
width : 50px;
height : 50px;
}
footer {
margin-top : 10px;
}
a {
text-decoration : none;
}
a:hover {
text-decoration : underline;
}
JavaScript
$(function () {
var Try = function (i, ref) {
var stage = ref.parents("[name='stage']");
var result = stage.find("[name='result']");
var play = stage.find("[name='play']");
play.text(parseInt(play.text()) + 1);
var charisma = stage.find("[name='charisma']");
charisma.text(parseInt(charisma.text()) + stage.data('charisma'));
var stamina = stage.find("[name='stamina']");
stamina.text(parseInt(stamina.text()) + stage.data('stamina'));
var nodrop = true;
var tmp = [];
var str = "";
stage.find("[name='item'][data-drop]").each(function (j) {
var item = jQuery(this);
var count = item.data('count') || 1;
for (var c = 0; c < count; ++c) {
tmp[j] = parseInt(item.find("[name='count']").text());
var drop = parseInt(item.find("[name='drop']").text());
if (Math.floor(Math.random() * 100) < drop) {
tmp[j]++;
nodrop = false;
str += item.find("[name='item_name']").html();
item.find("[name='count']").html(tmp[j]);
}
}
});
if (nodrop) {
result.prepend("<span style='font-weight:bold;color:rgb(120, 0, 0)'>ノードロップ…</span><br />");
} else {
result.prepend(str + " をドロップ!<br />");
}
var comp = stage.find("[name='count']:eq(3)");
if (tmp[0] && tmp[1] && tmp[2] && !parseInt(comp.text())) {
comp.text(1);
var item = stage.find("[name='item']:eq(3)");
result.prepend("<span style='font-weight:bold;color:rgb(10, 229, 10)'>Complete!!</span> " + item.find("[name='item_name']").html() + " をゲット!<br />");
}
};
jQuery("button[name='GR']").each(function (i) {
var ref = jQuery(this);
ref.click(function () {
Try(i, jQuery(this));
});
});
...