Difference between revisions of "MediaWiki:Calculator.js/Swing Speed Increase.js"

m (testing)
 
m
 
(11 intermediate revisions by the same user not shown)
Line 12: Line 12:
 
             }
 
             }
  
 +
            if (stam_val >= 10 &&  ssi_val >= 0 && weap_val > 0) {
  
        if (5<8) {
+
                 Final_SSI = Math.floor(((weap_val * 4) - Math.floor(stam_val / 30)) * (100 / (100 + ssi_val)))/4;
 
+
            if (stam_val >= 1 &&  ssi_val >= 0 && weap_val > 0) {
+
 
+
                 Final_SSI = Math.ceil(((weap_val * 4) - Math.floor(stam_val / 30)) * (100 / (100 + ssi_val)))/4;
+
  
 
                 if (Final_SSI < 1.25) {
 
                 if (Final_SSI < 1.25) {
Line 24: Line 21:
  
 
                 label.removeChild(label.lastChild);
 
                 label.removeChild(label.lastChild);
                 label.appendChild(document.createTextNode(Final_SSI.toString() + ' Swing/Second'));
+
                 label.appendChild(document.createTextNode(Final_SSI.toString() + ' Seconds/Swing'));
 
             }
 
             }
        }
+
    else {
 +
                label.removeChild(label.lastChild);
 +
                label.appendChild(document.createTextNode('--- Seconds/Swing'));
 +
    }
 
     };
 
     };
  
Line 42: Line 42:
 
     calcTableRow.appendChild(calcTableCell);
 
     calcTableRow.appendChild(calcTableCell);
  
     var Weapons = new Array("Select Weapon","Assassin Spike","Axe","Bardiche");  
+
     var Weapons = new Array("Select Weapon","Bare Hands","Assassin Spike","Axe","Bardiche","Battle Axe","Black Staff","Bladed Staff","Bloodblade","Bokuto","Bone Harvester","Boomerang","Bow","Broadsword","Butcher Knife","Cleaver","Club","Composite Bow","Crescent Blade","Crossbow","Cutlass","Cyclone","Dagger","Daisho","Diamond Mace","Disc Mace","Double Axe","Double Bladed Staff","Dread Sword","Dual Pointed Spear","Dual Short Axes","Elven Composite Longbow","Elven Machete","Elven Spellblade","Executioner's Axe","Gargish Axe","Gargish Bardiche","Gargish Battle Axe","Gargish Bone Harvester","Gargish Butcher Knife","Gargish Cleaver","Gargish Dagger","Gargish Daisho","Gargish Gnarled Staff","Gargish Katana","Gargish Kryss","Gargish Lance","Gargish Maul","Gargish Pike","Gargish Scythe","Gargish Talwar","Gargish Tekagi","Gargish Tessen","Gargish War Fork","Gargish War Hammer","Glass Staff","Glass Sword","Gnarled Staff","Halberd","Hammer Pick","Hatchet","Heavy Crossbow","Kama","Katana","Kryss","Lajatang","Lance","Large Battle Axe","Leafblade","Longsword","Mace","Magical Shortbow","Maul","No-Dachi","Nunchaku","Ornate Axe","Pickaxe","Pike","Pitchfork","Quarter Staff","Radiant Scimitar","Repeating Crossbow","Rune Blade","Sai","Scepter","Scimitar","Scythe","Serpentstone Staff","Shepherd's Crook","Short Spear","Shortblade","Skinning Knife","Sledge Hammer","Smith's Hammer","Soul Glaive","Spear","Stone War Sword","Tekagi","Tessen","Tetsubo","Two-Handed Axe","Viking Sword","Wakizashi","Wand","War Axe","War Cleaver","War Fork","War Hammer","War Mace","Wild Staff","Yumi");  
     var Speeds = new Array(0,2,3,3.75);
+
   
 +
     var Speeds = new Array(0,2.5,2,3,3.75,3.5,2.75,3,2,2,3,2,4.25,3.25,2.25,2.5,2.25,4,2.5,4.5,2.5,3,2,2.75,3,2.75,3.25,2.25,3.5,2.25,3,4,2.75,2.5,3.25,3,3.75,3.5,3,2.25,2.5,2,2.75,3.25,2.5,2,4.5,3.5,3,3.5,3.5,2,2,2.5,3.75,2.25,2.75,3.25,4.25,3.75,2.75,5,2,2.5,2,3.5,4.5,3.75,2.75,3.5,2.75,3,3.5,3.5,2.5,3.5,3,3,2.5,2.25,2.5,2.75,3,2,3.5,3,3.5,3.25,2.75,2,2,2.25,3.25,3.25,4,2.75,3.75,2,2,2.5,3.5,3.75,2.5,2.75,3.25,2.25,2.5,3.75,4,2.25,4.5);
  
  
Line 59: Line 60:
  
 
     calcTableCell.style.textAlign = 'right';
 
     calcTableCell.style.textAlign = 'right';
     calcTableCell.appendChild(document.createTextNode('SSI Bonus (%):'));
+
     calcTableCell.appendChild(document.createTextNode(' SSI Bonus (%):'));
 
     calcTableRow.appendChild(calcTableCell);
 
     calcTableRow.appendChild(calcTableCell);
  
Line 65: Line 66:
 
     SSI_Bonus.maxLength = '3';
 
     SSI_Bonus.maxLength = '3';
 
     SSI_Bonus.type = 'text';
 
     SSI_Bonus.type = 'text';
     SSI_Bonus.style.width = '55px';
+
    SSI_Bonus.value = '0';
 +
     SSI_Bonus.style.width = '30px';
  
 
     calcTableCell = document.createElement('td');
 
     calcTableCell = document.createElement('td');
Line 73: Line 75:
  
 
     calcTableCell.style.textAlign = 'right';
 
     calcTableCell.style.textAlign = 'right';
     calcTableCell.appendChild(document.createTextNode('Stamina:'));
+
     calcTableCell.appendChild(document.createTextNode(' Stamina:'));
 
     calcTableRow.appendChild(calcTableCell);
 
     calcTableRow.appendChild(calcTableCell);
  
Line 79: Line 81:
 
     Stamina.maxLength = '3';
 
     Stamina.maxLength = '3';
 
     Stamina.type = 'text';
 
     Stamina.type = 'text';
     Stamina.style.width = '55px';
+
    Stamina.value = '100';
 +
     Stamina.style.width = '30px';
 
    
 
    
  
Line 97: Line 100:
 
     calcTableRow.appendChild(calcTableCell);
 
     calcTableRow.appendChild(calcTableCell);
  
     Final_SSI_Label.appendChild(document.createTextNode('Swing / Second'));
+
     Final_SSI_Label.appendChild(document.createTextNode('Seconds/Swing'));
 
     Final_SSI_Label.style.textAlign = 'right';
 
     Final_SSI_Label.style.textAlign = 'right';
     Final_SSI_Label.style.width = '80px';
+
     Final_SSI_Label.style.width = '90px';
 
     calcTableCell = document.createElement('td');
 
     calcTableCell = document.createElement('td');
 
     calcTableCell.appendChild(Final_SSI_Label);
 
     calcTableCell.appendChild(Final_SSI_Label);

Latest revision as of 17:01, 7 February 2012

function SwingSpeedCalculator() {

    var calculate = function(stamina, ssi, weap, label) {

            var stam_val = Number(stamina.value);
            var ssi_val = Number(ssi.value);
            var weap_val = Number(weap.value);
            var Final_SSI = 0;

            if (ssi_val > 60) {
                    ssi_val = 60;
            }

            if (stam_val >= 10 &&  ssi_val >= 0 && weap_val > 0) {

                Final_SSI = Math.floor(((weap_val * 4) - Math.floor(stam_val / 30)) * (100 / (100 + ssi_val)))/4;

                if (Final_SSI < 1.25) {
                    Final_SSI = 1.25;
                }

                label.removeChild(label.lastChild);
                label.appendChild(document.createTextNode(Final_SSI.toString() + ' Seconds/Swing'));
            }
	    else {
                label.removeChild(label.lastChild);
                label.appendChild(document.createTextNode('--- Seconds/Swing'));
	    }
    };

    var calcTableRow = document.createElement('tr');
    var calcTableCell = document.createElement('td');
    var Stamina = document.createElement('input');
    var SSI_Bonus = document.createElement('input');
    var totalPriceInput = document.createElement('input');
    var Weap_List = document.createElement("select");
    var calculateButton = document.createElement('input');
    var Final_SSI_Label = document.createElement('div');

    calcTableCell.style.textAlign = 'right';
    calcTableCell.appendChild(document.createTextNode('Weapon:'));
    calcTableRow.appendChild(calcTableCell);

    var Weapons = new Array("Select Weapon","Bare Hands","Assassin Spike","Axe","Bardiche","Battle Axe","Black Staff","Bladed Staff","Bloodblade","Bokuto","Bone Harvester","Boomerang","Bow","Broadsword","Butcher Knife","Cleaver","Club","Composite Bow","Crescent Blade","Crossbow","Cutlass","Cyclone","Dagger","Daisho","Diamond Mace","Disc Mace","Double Axe","Double Bladed Staff","Dread Sword","Dual Pointed Spear","Dual Short Axes","Elven Composite Longbow","Elven Machete","Elven Spellblade","Executioner's Axe","Gargish Axe","Gargish Bardiche","Gargish Battle Axe","Gargish Bone Harvester","Gargish Butcher Knife","Gargish Cleaver","Gargish Dagger","Gargish Daisho","Gargish Gnarled Staff","Gargish Katana","Gargish Kryss","Gargish Lance","Gargish Maul","Gargish Pike","Gargish Scythe","Gargish Talwar","Gargish Tekagi","Gargish Tessen","Gargish War Fork","Gargish War Hammer","Glass Staff","Glass Sword","Gnarled Staff","Halberd","Hammer Pick","Hatchet","Heavy Crossbow","Kama","Katana","Kryss","Lajatang","Lance","Large Battle Axe","Leafblade","Longsword","Mace","Magical Shortbow","Maul","No-Dachi","Nunchaku","Ornate Axe","Pickaxe","Pike","Pitchfork","Quarter Staff","Radiant Scimitar","Repeating Crossbow","Rune Blade","Sai","Scepter","Scimitar","Scythe","Serpentstone Staff","Shepherd's Crook","Short Spear","Shortblade","Skinning Knife","Sledge Hammer","Smith's Hammer","Soul Glaive","Spear","Stone War Sword","Tekagi","Tessen","Tetsubo","Two-Handed Axe","Viking Sword","Wakizashi","Wand","War Axe","War Cleaver","War Fork","War Hammer","War Mace","Wild Staff","Yumi"); 
    
    var Speeds = new Array(0,2.5,2,3,3.75,3.5,2.75,3,2,2,3,2,4.25,3.25,2.25,2.5,2.25,4,2.5,4.5,2.5,3,2,2.75,3,2.75,3.25,2.25,3.5,2.25,3,4,2.75,2.5,3.25,3,3.75,3.5,3,2.25,2.5,2,2.75,3.25,2.5,2,4.5,3.5,3,3.5,3.5,2,2,2.5,3.75,2.25,2.75,3.25,4.25,3.75,2.75,5,2,2.5,2,3.5,4.5,3.75,2.75,3.5,2.75,3,3.5,3.5,2.5,3.5,3,3,2.5,2.25,2.5,2.75,3,2,3.5,3,3.5,3.25,2.75,2,2,2.25,3.25,3.25,4,2.75,3.75,2,2,2.5,3.5,3.75,2.5,2.75,3.25,2.25,2.5,3.75,4,2.25,4.5);


    for (var i=0; i < Weapons.length;++i){
        var optn = document.createElement("OPTION");
        optn.text = Weapons[i];
        optn.value = Speeds[i];
        Weap_List.options.add(optn);

    }

    calcTableCell = document.createElement('td');
    calcTableCell.appendChild(Weap_List);
    calcTableRow.appendChild(calcTableCell);

    calcTableCell.style.textAlign = 'right';
    calcTableCell.appendChild(document.createTextNode(' SSI Bonus (%):'));
    calcTableRow.appendChild(calcTableCell);

    SSI_Bonus.id = 'SSI_Bonus';
    SSI_Bonus.maxLength = '3';
    SSI_Bonus.type = 'text';
    SSI_Bonus.value = '0';
    SSI_Bonus.style.width = '30px';

    calcTableCell = document.createElement('td');
    calcTableCell.appendChild(SSI_Bonus);
    calcTableRow.appendChild(calcTableCell);


    calcTableCell.style.textAlign = 'right';
    calcTableCell.appendChild(document.createTextNode(' Stamina:'));
    calcTableRow.appendChild(calcTableCell);

    Stamina.id = 'Stamina';
    Stamina.maxLength = '3';
    Stamina.type = 'text';
    Stamina.value = '100';
    Stamina.style.width = '30px';
  

    calcTableCell = document.createElement('td');
    calcTableCell.appendChild(Stamina);
    calcTableRow.appendChild(calcTableCell);


    calculateButton.type = 'button';
    calculateButton.value = 'Calculate';
    calculateButton.style.width = '70px';
    calculateButton.onclick = function() {
        calculate(Stamina, SSI_Bonus, Weap_List, Final_SSI_Label);
    };
    calcTableCell = document.createElement('td');
    calcTableCell.appendChild(calculateButton);
    calcTableRow.appendChild(calcTableCell);

    Final_SSI_Label.appendChild(document.createTextNode('Seconds/Swing'));
    Final_SSI_Label.style.textAlign = 'right';
    Final_SSI_Label.style.width = '90px';
    calcTableCell = document.createElement('td');
    calcTableCell.appendChild(Final_SSI_Label);
    calcTableRow.appendChild(calcTableCell);

    return calcTableRow;
}

function searchForCalculators() {
    var calculators = document.getElementsByTagName('div');

    for (var i in calculators) {
         if (calculators[i].id == 'SwingSpeed') {
             Calculator(SwingSpeedCalculator(), 'SwingSpeed', 'Swing Speed Calculator', 9);
         }
    }
}

addOnloadHook(searchForCalculators);