torchlight-data
Version:
torchlight data repository
76 lines (70 loc) • 3.29 kB
JavaScript
Torchlight.t2.skills.engineer.construction.SpiderMines = function SpiderMines() {
this.name = "spidermines";
this.displayName = "Spider Mines";
this.description = "You deploy a trio of spider drones that charge the nearest foes and explode in a 3 meter radius. Upgraded mines do 20% more damage with a 5 meter radius, a 2 second stun, and electric damage over time";
this.tree = "construction";
this.skillLevelRequiredTier = 2;
this.manaCost = [0, 32, 33, 33, 35, 29, 31, 33, 35, 39, 32, 36, 40, 43, 48, 35];
this.getCooldown = function getCooldown(skillLevel) {
return 3.1 - (0.1 * skillLevel);
};
this.getDuration = function getDuration(skillLevel) {
return 14 + (1 * skillLevel);
};
this.tierBonuses = [
"Mana cost reduced by 20%",
"Mana cost reduced by 40%",
"Mana cost reduced by 60%"
];
var fireDamageDuration = 3;
this.attributes = [
new Torchlight.t2.skills.Attribute(this, "Fire Damage Duration", fireDamageDuration),
new Torchlight.t2.skills.Attribute(this, "Mana", this.getManaCost),
new Torchlight.t2.skills.Attribute(this, "Cooldown", this.getCooldown),
new Torchlight.t2.skills.Attribute(this, "Duration", this.getDuration),
new Torchlight.t2.skills.Attribute(this, "Upgraded Explosion Chance", calculateUpgradedMineExplosionChance),
new Torchlight.t2.skills.Attribute(this, "Minion Physical Damage", calculateMinionPhysicalDamage),
new Torchlight.t2.skills.Attribute(this, "Minion Fire Damage", calculateMinionFireDamage)
];
/**
* @param {number} skillLevel
* @param {number} playerLevel
* @returns {Torchlight.t2.effects[]}
*/
this.getEffects = function getEffects(skillLevel, playerLevel) {
var upgradedExplosionChance = calculateUpgradedMineExplosionChance(skillLevel);
var minionPhysicalDamage = new Torchlight.lib.Range(calculateMinionPhysicalDamage(skillLevel, playerLevel));
var minionFireDamage = new Torchlight.lib.Range(calculateMinionFireDamage(skillLevel, playerLevel));
return [
new Torchlight.t2.effects.MinionsDealDamage(minionPhysicalDamage, "Physical"),
new Torchlight.t2.effects.MinionsDealDamage(minionFireDamage, "Fire", fireDamageDuration),
new Torchlight.t2.effects.UpgradedMineExplosion(upgradedExplosionChance)
];
};
/**
* @param {number} skillLevel
* @returns {number}
*/
function calculateUpgradedMineExplosionChance(skillLevel) {
return 0 + (5 * skillLevel);
}
/**
* @fixme
* @param {number} skillLevel
* @param {number} playerLevel
* @returns {number}
*/
function calculateMinionPhysicalDamage(skillLevel, playerLevel) {
return 18 + (2 * skillLevel);
}
/**
* @fixme
* @param {number} skillLevel
* @param {number} playerLevel
* @returns {number}
*/
function calculateMinionFireDamage(skillLevel, playerLevel) {
return 18 + (2 * skillLevel);
}
};
Torchlight.t2.skills.engineer.construction.SpiderMines.prototype = Object.create(Torchlight.t2.skills.Skill.prototype);