Widget:CloningCost

From ARK Wiki
Jump to navigation Jump to search
<table class="wikitable">
    <tr>
        <td><label for="creature-select">Creature</label></td>
        <td><select id="creature-select"></select></td>
    </tr>
    <tr>
        <td><label for="character-level">Level</label></td>
        <td><input type="number" min="1" max="500" step="1" value="224" id="character-level"></td>
    </tr>
    <tr>
        <td><label for="baby-mature-speed-multiplier">BabyMatureSpeedMultiplier</label> *)</td>
        <td><input type="number" min="0.1" max="100" step="0.1" value="1.0" id="baby-mature-speed-multiplier"></td>
    </tr>
    <tr>
        <td>Element Shard Cost Per Level</td>
        <td id="cost-per-level"></td>
    </tr>
    <tr>
        <td>Base Element Shard Cost</td>
        <td id="base-cost"></td>
    </tr>
    <tr>
        <td>Clone Cost</td>
        <td id="clone-cost-color"><span id="clone-cost"></span> Element Shards</td>
    </tr>
    <tr>
        <td>Clone Time</td>
        <td><span id="clone-time"></span> seconds = <span id="clone-time-readable"></span></td>
    </tr>
</table>

<script>
(function () {
// Constants from the CloningChamber blueprint are retrieved by Purlovia
// at extraction time. The values are ready to use as-is.
// {DinoName: [BaseCost, LevelCost, BaseTime, LevelTime], ...}
var creatures = // Version: 329.3.6806323
{
  "Achatina": [ 1725, 55, 12075, 385 ],
  "Allosaurus": [ 1325, 55, 9275, 385 ],
  "Amargasaurus": [ 575, 55, 4025, 385 ],
  "Andrewsarchus": [ 1675, 55, 11725, 385 ],
  "Anglerfish": [ 425, 55, 2975, 385 ],
  "Ankylosaurus": [ 2325, 55, 16275, 385 ],
  "Araneo": [ 100, 55, 700, 385 ],
  "Archaeopteryx": [ 325, 38.5, 2275, 269.5 ],
  "Argentavis": [ 1700, 55, 11900, 385 ],
  "Arthropluera": [ 500, 55, 3500, 385 ],
  "Astrocetus": [ 2475, 55, 17325, 385 ],
  "Astrodelphis": [ 1675, 55, 11725, 385 ],
  "Baryonyx": [ 1300, 55, 9100, 385 ],
  "Basilisk": [ 1950, 55, 13650, 385 ],
  "Basilosaurus": [ 1875, 55, 13125, 385 ],
  "Beelzebufo": [ 1425, 55, 9975, 385 ],
  "Bloodstalker": [ 875, 55, 6125, 385 ],
  "Brontosaurus": [ 1975, 55, 13825, 385 ],
  "Bulbdog": [ 125, 55, 875, 385 ],
  "Carbonemys": [ 1600, 55, 11200, 385 ],
  "Carnotaurus": [ 650, 55, 4550, 385 ],
  "Castoroides": [ 2100, 55, 14700, 385 ],
  "Chalicotherium": [ 675, 55, 4725, 385 ],
  "Carcharodontosaurus": [ 2475, 55, 17325, 385 ],
  "Compy": [ 175, 55, 1225, 385 ],
  "Crystal Wyvern": [ 2125, 55, 14875, 385 ],
  "Daeodon": [ 1675, 55, 11725, 385 ],
  "Deinonychus": [ 575, 55, 4025, 385 ],
  "Desmodus": [ 1675, 55, 11725, 385 ],
  "Dilophosaur": [ 300, 27.5, 2100, 192.5 ],
  "Dimetrodon": [ 200, 27.5, 1400, 192.5 ],
  "Dimorphodon": [ 700, 55, 4900, 385 ],
  "Dinopithecus": [1700, 55, 11900, 385 ],
  "Diplocaulus": [ 1000, 55, 7000, 385 ],
  "Diplodocus": [ 575, 55, 4025, 385 ],
  "Dire Bear": [ 1650, 55, 11550, 385 ],
  "Direwolf": [ 1450, 55, 10150, 385 ],
  "Dodo": [ 25, 27.5, 175, 192.5 ],
  "Doedicurus": [ 2075, 55, 14525, 385 ],
  "Dung Beetle": [ 2250, 27.5, 15750, 192.5 ],
  "Dunkleosteus": [ 1075, 55, 7525, 385 ],
  "Electrophorus": [ 325, 55, 2275, 385 ],
  "Equus": [ 1100, 55, 7700, 385 ],
  "Featherlight": [ 125, 55, 875, 385 ],
  "Ferox": [ 1275, 55, 8925, 385 ],
  "Fjordhawk": [ 750, 55, 5250, 385 ],
  "Gacha": [ 1550, 55, 10850, 385 ],
  "Gallimimus": [ 875, 55, 6125, 385 ],
  "Gasbags": [ 1800, 55, 12600, 385 ],
  "Giganotosaurus": [ 2475, 55, 17325, 385 ],
  "Gigantopithecus": [ 875, 55, 6125, 385 ],
  "Glowtail": [ 125, 55, 875, 385 ],
  "Griffin": [ 1700, 55, 11900, 385 ],
  "Hesperornis": [ 625, 55, 4375, 385 ],
  "Hyaenodon ": [ 87.5, 55, 612.5, 385 ],
  "Ichthyornis": [ 750, 55, 5250, 385 ],
  "Ichthyosaurus": [ 1650, 55, 11550, 385 ],
  "Iguanodon": [ 800, 55, 5600, 385 ],
  "Jerboa": [ 1275, 55, 8925, 385 ],
  "Kairuku": [ 1025, 27.5, 7175, 192.5 ],
  "Kaprosuchus": [ 1000, 55, 7000, 385 ],
  "Karkinos": [ 1250, 55, 8750, 385 ],
  "Kentrosaurus": [ 925, 55, 6475, 385 ],
  "Lymantria": [ 375, 55, 2625, 385 ],
  "Lystrosaurus": [ 825, 27.5, 5775, 192.5 ],
  "Maewing": [ 775, 55, 5425, 385 ],
  "Magmasaur": [ 2050, 55, 14350, 385 ],
  "Mammoth": [ 1550, 55, 10850, 385 ],
  "Managarmr": [ 2350, 55, 16450, 385 ],
  "Manta": [ 525, 55, 3675, 385 ],
  "Mantis": [ 1975, 55, 13825, 385 ],
  "Megachelon": [ 1850, 55, 12950, 385 ],
  "Megalania": [ 2125, 55, 14875, 385 ],
  "Megaloceros": [ 900, 55, 6300, 385 ],
  "Megalodon": [ 925, 55, 6475, 385 ],
  "Megalosaurus": [ 850, 55, 5950, 385 ],
  "Megatherium": [ 1675, 55, 11725, 385 ],
  "Mesopithecus": [ 575, 27.5, 4025, 192.5 ],
  "Microraptor": [ 850, 55, 5950, 385 ],
  "Morellatops": [ 875, 55, 6125, 385 ],
  "Mosasaurus": [ 2200, 55, 15400, 385 ],
  "Moschops": [ 1250, 55, 8750, 385 ],
  "Onyc": [ 50, 55, 350, 385 ],
  "Otter": [ 2100, 55, 14700, 385 ],
  "Oviraptor": [ 1500, 55, 10500, 385 ],
  "Ovis": [ 1975, 55, 13825, 385 ],
  "Pachy": [ 300, 44, 2100, 308 ],
  "Pachyrhinosaurus": [ 500, 55, 3500, 385 ],
  "Paraceratherium": [ 1650, 55, 11550, 385 ],
  "Parasaur": [ 350, 38.5, 2450, 269.5 ],
  "Pegomastax": [ 700, 55, 4900, 385 ],
  "Pelagornis": [ 1075, 55, 7525, 385 ],
  "Phiomia": [ 1175, 44, 8225, 308 ],
  "Phoenix": [ 2050, 220, 14350, 1540 ],
  "Plesiosaur": [ 1050, 55, 7350, 385 ],
  "Procoptodon": [ 775, 55, 5425, 385 ],
  "Pteranodon": [ 1975, 55, 13825, 385 ],
  "Pulmonoscorpius": [ 800, 55, 5600, 385 ],
  "Purlovia": [ 800, 55, 5600, 385 ],
  "Quetzal": [ 2450, 550, 17150, 3850 ],
  "Raptor": [ 575, 55, 4025, 385 ],
  "Ravager": [ 625, 55, 4375, 385 ],
  "Reaper King": [ 2325, 55, 16275, 385 ],
  "Rex": [ 2175, 55, 15225, 385 ],
  "Rhyniognatha": [2450, 550, 17150, 3850],
  "Rock Drake": [ 2050, 55, 14350, 385 ],
  "Rock Elemental": [ 2200, 55, 15400, 385 ],
  "Roll Rat": [1125, 55, 7875, 385 ],
  "Sabertooth": [ 1200, 55, 8400, 385 ],
  "Sarco": [ 550, 55, 3850, 385 ],
  "Shadowmane": [ 2375, 55, 16625, 385 ],
  "Shinehorn": [ 125, 55, 875, 385 ],
  "Sinomacrops": [700, 55, 4900, 385 ],
  "Snow Owl": [ 1125, 55, 7875, 385 ],
  "Spino": [ 1675, 55, 11725, 385 ],
  "Stegosaurus": [ 725, 55, 5075, 385 ],
  "Tapejara": [ 1675, 55, 11725, 385 ],
  "Terror Bird": [ 900, 55, 6300, 385 ],
  "Therizinosaur": [ 2350, 55, 16450, 385 ],
  "Thorny Dragon": [ 1200, 55, 8400, 385 ],
  "Thylacoleo": [ 1250, 55, 8750, 385 ],
  "Triceratops": [ 575, 55, 4025, 385 ],
  "Troodon": [ 800, 55, 5600, 385 ],
  "Tropeognathus": [ 1675, 55, 11725, 385 ],
  "Tusoteuthis": [ 2175, 55, 15225, 385 ],
  "Unicorn": [ 1100, 55, 7700, 385 ],
  "Velonasaur": [ 800, 55, 5600, 385 ],
  "Voidwyrm": [ 2050, 55, 14350, 385 ],
  "Vulture": [ 800, 55, 5600, 385 ],
  "Woolly Rhino": [ 975, 55, 6825, 385 ],
  "Wyvern": [ 2050, 55, 14350, 385 ],
  "Yutyrannus": [ 2350, 55, 16450, 385 ]
};

const CHAMBER_MAX_SHARDS = 48 * 1000;

var creatureSelect = document.getElementById('creature-select');
var babyMatureSpeedMultiplier = document.getElementById('baby-mature-speed-multiplier');
var characterLevel = document.getElementById('character-level');
var costPerLevelElement = document.getElementById('cost-per-level');
var baseCostElement = document.getElementById('base-cost');
var cloneCostElement = document.getElementById('clone-cost');
var cloneTimeElement = document.getElementById('clone-time');
var cloneTimeReadableElement = document.getElementById('clone-time-readable');

createSelect(Object.keys(creatures).sort());
babyMatureSpeedMultiplier.addEventListener('input', calculate);
characterLevel.addEventListener('input', calculate);
calculate();

function createSelect(creatureNames) {
    creatureNames.forEach(function (name) {
        var option = document.createElement('option');
        option.innerText = name;
        option.value = name;
        creatureSelect.appendChild(option);
    });
    creatureSelect.addEventListener('change', calculate);
}

function calculate() {
    var creatureName = creatureSelect.options[creatureSelect.selectedIndex].value;
    var creature = creatures[creatureName];
    var creatureLevel = parseFloat(characterLevel.value) || 0;
    // Clone Cost
    var baseCost = creature[0];
    var costPerLevel = creature[1];
    var costForLevel = costPerLevel * creatureLevel;

    var cloneCost = costForLevel + baseCost;
    var cloneTime = (creature[2] + creature[3] * creatureLevel) / (parseFloat(babyMatureSpeedMultiplier.value) || 1);

    // console.log('CloneCostResult: ' + cloneCost);
    // console.log('CloneTimeResult: ' + cloneTime);
    
    costPerLevelElement.innerText = Math.round(costPerLevel);
    baseCostElement.innerText = Math.round(baseCost);
    cloneCostElement.innerText = Math.round(cloneCost);
    if (Number.parseInt(cloneCost) >= CHAMBER_MAX_SHARDS) 
        document.getElementById('clone-cost-color').style = "background-color:#cf4c4c8a !important;";
        else 
            document.getElementById('clone-cost-color').style = "background-color:#2ebf338a !important";
    cloneTimeElement.innerText = Math.round(cloneTime);
    var cloneTimeReadable = new Date(cloneTime * 1000);
    cloneTimeReadableElement.innerText = (cloneTimeReadable.getUTCDate() - 1 /* 1. Januar */) + ' d ' + cloneTimeReadable.getUTCHours() + ' h '
        + cloneTimeReadable.getUTCMinutes() + ' m ' + cloneTimeReadable.getUTCSeconds() + ' s';
} 
})();
</script>