DSO Mines Calc

Калькулятор маржи шахт The Settlers Online

by disfated

HTML

<script src="https://raw.github.com/flot/flot/master/jquery.flot.js"></script>
<script src="https://raw.github.com/markrcote/flot-axislabels/master/jquery.flot.axislabels.js"></script>
<div id="plot"></div>

<fieldset>
    <legend>Варьируемые параметры</legend>
    <table width="100%">
    <tr>
    <td valign="top">
    
    <table class="params">
        <tr>
            <td><label for="input-mine">Шахта</label></td>
            <td>
                <select id="input-mine"></select>
            </td>
        </tr>
        <tr>
            <td><label for="input-buff">Бафф</label></td>
            <td>
                <select id="input-buff"></select>
            </td>
        </tr>
        <tr>
            <td><label for="input-buff-cost" title="Себестоимость баффа из магазина нельзя расчитать, задётся пользователем">Себестоимость баффа</label></td>
            <td>
                <input type="number" id="input-buff-cost" value="0" />
                <span class="resIcon coins" title="Монеты"></span>
            </td>
        </tr>
        <tr>
            <td><label for="input-friend-buff" title="Когда вас баффает друг продолжительность баффа увеличивается в 1.5 раза, в результате себестоимость баффа за единицу времени уменьшается, общая рентабельно немного повышается">Дружеский бафф</label></td>
            <td><input type="checkbox" id="input-friend-buff" /></td>
        </tr>
        <tr>
            <td><label for="input-refill" title="Пополнение добавляет в шахту определённое количество руды, продаётся в магазине и на чёрном рынке">Пополнение</label></td>
            <td>
                <select id="input-refill"></select>
            </td>
        </tr>
        <tr>
            <td><label for="input-refill-cost" title="Пользовательская оценка себестоимости одного пополнения - обычно это стоимость в монетах, за которую пользователь купил пополение на рынке">Себестоимость пополнения</label></td>
            <td>
                <input type="number"...

CSS

* {
    margin: 0;
    padding: 0;
}
body {
    background: ;
    background: #EEE...

JavaScript

$(document).ready(function() {
    
    var resources = {
        'coins': { title: 'Монеты' },
        'planks': { title: 'Доски из ели' },
        'stone': { title: 'Камень' },
        'realPlanks': { title: 'Доски из дуба' },
        'marble': { title: 'Мрамор' },
        'tools': { title: 'Инструменты' },
        'fish': { title: 'Рыба' },
        'bread': { title: 'Хлеб' },
        'meat': { title: 'Колбасы' },
        'goldOre': { title: 'Золотая руда' },
        'coal': { title: 'Уголь' },
        'bronzeOre': { title: 'Медная руда' },
        'ironOre': { title: 'Железная руда' },
    }
    
    var priceParams = {
        planks: { defaultPrice: 0 },
        stone: { defaultPrice: 0 },
        realPlanks: { defaultPrice: 8 },
        marble: { defaultPrice: 9 },
        tools: { defaultPrice: 10 },
        fish: { defaultPrice: 2 },
        bread: { defaultPrice: 9 },
        meat: { defaultPrice: 15 }
    };
    
    var buffs = [
        { factor: 1, time: 0, cost: {}, title: 'Нет' },
        { factor: 2, time: 0.5, cost: { fish: 10 }, title: 'Рыбное блюдо'  },
        { factor: 2, time: 2, cost: { fish: 40, bread: 20 }, title: 'Сытный бутерброд'  },
        { factor: 2, time: 6, cost: { fish: 120, bread: 60, meat: 20 }, title: 'Корзинка для пикника' },
        { factor: 3, time: 12, cost: { gem: 99 }, title: 'Корзинка c экзотическими фруктами' },
        { factor: 3, time: 24, cost: { gem: 199 }, title: 'Красный крылатый поселенец' },
        { factor: 3, time: 32, cost: { gem: true }, title: 'Печенье' },
    ];
    
    var refills = [
        { amount: 0, cost: { }, title: 'Нет' },
        { amount: 500, cost: { gem: 75 }, title: 'Золотой попугай' },
        { amount: 250, cost: { gem: 50 }, title: 'Чудо-семена' }
    ];
    
    var mines = {
        gold: {
            buildCosts: {
                1: { realPlanks: 1400, marble: 1400, tools: 1500 },
                2: { tools: 500 },
                3: { tools: 1000 },
                4: { tools:...