ゴールドラッシュ ドロップシミュレータ

ゴールドラッシュのコンプリートに何回挑戦すればいいか、体感してみましょう。

by zohnam

HTML

<div name='stage' style='border:1px solid black;' data-charisma='30' data-stamina='2'>
     <h3>ゴールドラッシュ射程強化</h3>

    <button name='GR'>1回ずつ挑戦する</button>
    <button name='complete'>コンプするまで挑戦する</button>
    <label>
        <input type='checkbox' value='zuttomo'>ズッ友あり(GRでは+5%効果)</input>
    </label>
    <p> <span name='play'>0</span>回挑戦(消費カリスマ:<span name='charisma'>0</span> 消費スタミナ:<span name='stamina'>0</span>)</p>
    <div name='item' data-drop='7' data-zuttomo='true'><span name='item_name'>金の聖霊</span>:<span name='count'>0</span>個(<span name='drop'></span>%:右の2匹目のオーラ弓)</div>
    <div name='item' data-drop='20' data-zuttomo='true'><span name='item_name'>銀の聖霊</span>:<span name='count'>0</span>個(<span name='drop'></span>%:最後の左の騎馬)</div>
    <div name='item' data-drop='70' data-zuttomo='true'><span name='item_name'>銅の聖霊</span>:<span name='count'>0</span>個(<span name='drop'></span>%:最後の右の騎馬)</div>
    <div name='item'><span name='item_name'>ストレイ</span>:<span name='count'>0</span>個</div>
    <div name="result"></div>
</div>
<div name='stage' style='border:1px solid black;' data-charisma='30' data-stamina='2'>
     <h3>ゴールドラッシュ超猛毒</h3>

    <button name='GR'>1回ずつ挑戦する</button>
    <button name='complete'>コンプするまで挑戦する</button>
    <label>
        <input type='checkbox' value='zuttomo'>ズッ友あり(GRでは+5%効果)</input>
    </label>
    <p> <span name='play'>0</span>回挑戦(消費カリスマ:<span name='charisma'>0</span> 消費スタミナ:<span name='stamina'>0</span>)</p>
    <div name='item' data-drop='7' data-zuttomo='true'><span name='item_name'>金の聖霊</span>:<span name='count'>0</span>個(<span name='drop'></span>%:最後の山羊)</div>
    <div name='item' data-drop='10'><span name='item_name'>カリオペ</span>:<span name='count'>0</span>個(<span name='drop'></span>%:最後のウィッチ)</div>
    <div name='item' data-drop='70'> <span name='item_name'>花束</span> :<span name='count'>0</span>個(<span name='drop'></span>%:31匹目のゴブリンメイジ)</div>
    <div name='item'><span name='item_name'>フェドラ</span>:<span name='count'>0</span>個</div>
   ...

CSS

a {
    text-decoration : none;
}
a:hover {
    text-decoration : underline;
}

JavaScript

$(function () {

    var Try = function (i, ref) {
        var stage = ref.parent();
        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 = [];
        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;
                    result.append(item.find("[name='item_name']").text() + " ");
                    item.find("[name='count']").html(tmp[j]);
                }
            }
        });

        if (nodrop) {
            result.append("<span style='font-weight:bold;color:rgb(120, 0, 0)'>ノードロップ…</span><br />");
        } else {
            result.append(" をドロップ!<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.append("<span style='font-weight:bold;color:rgb(10, 229, 10)'>Complete!!</span> " + item.find("[name='item_name']").text() + " をゲット!<br />");
        }
    };
    jQuery("button[name='GR']").each(function (i) {
        var ref = jQuery(this);
        ref.click(function () {
            Try(i, jQuery(this));
        });
    });

    jQuery("button[name='complete']").each(function (i)...