Files
GrimoireJS/staves.js
T

80 lines
4.0 KiB
JavaScript
Raw Normal View History

2015-01-20 16:33:27 -05:00
/*global _:false, console: true */
'use strict';
var Staves = {};
Staves.baseUrl = 'http://paizo.com/pathfinderRPG/prd/magicItems/staves.html';
Staves.getStaves = function() {
return [
{'name': 'Staff of Charming', 'cost': 17600, 'url': '#staff-of-charming'},
{'name': 'Staff of Fire', 'cost': 18950, 'url': ''},
{'name': 'Staff of Swarming Insects', 'cost': 22800, 'url': ''},
{'name': 'Staff of Size Alteration', 'cost': 26150, 'url': ''},
{'name': 'Staff of Healing', 'cost': 29600, 'url': ''},
{'name': 'Staff of Frost', 'cost': 41400, 'url': ''},
{'name': 'Staff of Illumination', 'cost': 51500, 'url': ''},
{'name': 'Staff of Defense', 'cost': 62000, 'url': ''},
{'name': 'Staff of Abjuration', 'cost': 82000, 'url': ''},
{'name': 'Staff of Conjuration', 'cost': 82000, 'url': ''},
{'name': 'Staff of Divination', 'cost': 82000, 'url': ''},
{'name': 'Staff of Enchantment', 'cost': 82000, 'url': ''},
{'name': 'Staff of Evocation', 'cost': 82000, 'url': ''},
{'name': 'Staff of Illusion', 'cost': 82000, 'url': ''},
{'name': 'Staff of Necromancy', 'cost': 82000, 'url': ''},
{'name': 'Staff of Transmutation', 'cost': 82000, 'url': ''},
{'name': 'Staff of Earth and Stone', 'cost': 85800, 'url': ''},
{'name': 'Staff of Woodlands', 'cost': 100400, 'url': ''},
{'name': 'Staff of Life', 'cost': 109400, 'url': ''},
{'name': 'Staff of Passage', 'cost': 206900, 'url': ''},
{'name': 'Staff of Power', 'cost': 235000, 'url': ''},
];
};
Staves.getStaff = function(type) {
var roll = _.random(1,100);
var staff = {};
if(type == 'minor') {
console.log('Error: There are no minor staves');
return;
}
else if(type == 'medium') {
switch(true) {
case (roll <= 15): staff = Staves.getStaves()[0]; break;
case (roll <= 30): staff = Staves.getStaves()[1]; break;
case (roll <= 40): staff = Staves.getStaves()[2]; break;
case (roll <= 55): staff = Staves.getStaves()[3]; break;
case (roll <= 75): staff = Staves.getStaves()[4]; break;
case (roll <= 90): staff = Staves.getStaves()[5]; break;
case (roll <= 95): staff = Staves.getStaves()[6]; break;
case (roll <= 100): staff = Staves.getStaves()[7]; break;
}
}
else if(type == 'major') {
switch(true) {
case (roll <= 3): staff = Staves.getStaves()[0]; break;
case (roll <= 9): staff = Staves.getStaves()[1]; break;
case (roll <= 11): staff = Staves.getStaves()[2]; break;
case (roll <= 13): staff = Staves.getStaves()[3]; break;
case (roll <= 19): staff = Staves.getStaves()[4]; break;
case (roll <= 24): staff = Staves.getStaves()[5]; break;
case (roll <= 31): staff = Staves.getStaves()[6]; break;
case (roll <= 38): staff = Staves.getStaves()[7]; break;
case (roll <= 45): staff = Staves.getStaves()[8]; break;
case (roll <= 50): staff = Staves.getStaves()[9]; break;
case (roll <= 55): staff = Staves.getStaves()[10]; break;
case (roll <= 60): staff = Staves.getStaves()[11]; break;
case (roll <= 65): staff = Staves.getStaves()[12]; break;
case (roll <= 70): staff = Staves.getStaves()[13]; break;
case (roll <= 75): staff = Staves.getStaves()[14]; break;
case (roll <= 80): staff = Staves.getStaves()[15]; break;
case (roll <= 85): staff = Staves.getStaves()[16]; break;
case (roll <= 90): staff = Staves.getStaves()[17]; break;
case (roll <= 95): staff = Staves.getStaves()[18]; break;
case (roll <= 98): staff = Staves.getStaves()[19]; break;
case (roll <= 100): staff = Staves.getStaves()[20]; break;
}
}
if(_.random(1,100) <= 30) {
staff.name += ' (with a clue as to its purpose)';
}
return staff;
};