classes: spell balancing all around

This commit is contained in:
Tyler Renelle 2013-12-18 10:05:24 -07:00
parent aa3a5c06b4
commit cb5b80a2f7
2 changed files with 81 additions and 43 deletions

View file

@ -10022,7 +10022,7 @@ var global=self;/**
target: 'task',
notes: 'With a crack, flames burst from your staff, scorching a task. You deal much higher damage to the task and gain additional experience.',
cast: function(user, target) {
target.value += user._statsComputed.int * .2;
target.value += user._statsComputed.int * .02;
return user.stats.exp += Math.abs(target.value);
}
},
@ -10033,7 +10033,8 @@ var global=self;/**
target: 'task',
notes: 'A bolt of lightning pierces through a task. There is a high chance of a critical hit.',
cast: function(user, target) {
return target.value += user._statsComputed.int * .3 * crit(user, 'per');
target.value += user._statsComputed.int * .02 * crit(user, 'per');
return user.stats.exp += Math.abs(target.value);
}
},
frost: {
@ -10044,7 +10045,11 @@ var global=self;/**
notes: "Ice forms on the party's tasks, slowing them down and opening them up to more attacks. Your party gains a buff to experience.",
cast: function(user, target) {
return _.each(target, function(member) {
return member.stats.buffs.int = user._statsComputed.int / 2;
var _base;
if ((_base = member.stats.buffs).int == null) {
_base.int = 0;
}
return member.stats.buffs.int += user._statsComputed.int * .2;
});
}
},
@ -10056,7 +10061,11 @@ var global=self;/**
notes: "Unearthly shadows form and wisp around your party, concealing their presence. Under the shroud, your party can sneak up on tasks, dealing more critical hits.",
cast: function(user, target) {
return _.each(target, function(member) {
return member.stats.buffs.str = user._statsComputed.str / 2;
var _base;
if ((_base = member.stats.buffs).str == null) {
_base.str = 0;
}
return member.stats.buffs.str += user._statsComputed.int * .2;
});
}
}
@ -10069,7 +10078,7 @@ var global=self;/**
target: 'task',
notes: "You savagely hit a single task with all of your might, beating it into submission. The task's redness decreases.",
cast: function(user, target) {
return target.value += user._statsComputed.str * .3;
return target.value += user._statsComputed.str * .03;
}
},
defensiveStance: {
@ -10079,7 +10088,11 @@ var global=self;/**
target: 'self',
notes: "You take a moment to relax your body and enter a defensive stance to ready yourself for the tasks' next onslaught. Reduces damage from dailies at the end of the day.",
cast: function(user, target) {
return user.stats.buffs.con = user._statsComputed.con / 2;
var _base;
if ((_base = user.stats.buffs).con == null) {
_base.con = 0;
}
return user.stats.buffs.con += user._statsComputed.con * .3;
}
},
valorousPresence: {
@ -10090,7 +10103,11 @@ var global=self;/**
notes: "Your presence emboldens the party. Their newfound courage gives them a boost of strength. Party members gain a buff to their STR.",
cast: function(user, target) {
return _.each(target, function(member) {
return member.stats.buffs.str = user._statsComputed.str / 2;
var _base;
if ((_base = member.stats.buffs).str == null) {
_base.str = 0;
}
return member.stats.buffs.str += user._statsComputed.str * .2;
});
}
},
@ -10102,7 +10119,11 @@ var global=self;/**
notes: "Your gaze strikes fear into the hearts of your party's enemies. The party gains a moderate boost to defense.",
cast: function(user, target) {
return _.each(target, function(member) {
return member.stats.buffs.con = user._statsComputed.con / 2;
var _base;
if ((_base = member.stats.buffs).con == null) {
_base.con = 0;
}
return member.stats.buffs.con = user._statsComputed.con * .2;
});
}
}
@ -10115,7 +10136,7 @@ var global=self;/**
target: 'task',
notes: "Your nimble fingers run through the task's pockets and 'find' some treasures for yourself. You gain an increased gold bonus on the task and a higher chance of an item drop.",
cast: function(user, target) {
return user.stats.gp += ((target.value < 0 ? 0 : target.value) + 1) + user._statsComputed.per / 2;
return user.stats.gp += ((target.value < 0 ? 0 : target.value) + 1) + user._statsComputed.per * .3;
}
},
backStab: {
@ -10125,11 +10146,12 @@ var global=self;/**
target: 'task',
notes: "Without a sound, you sweep behind a task and stab it in the back. You deal higher damage to the task, with a higher chance of a critical hit.",
cast: function(user, target) {
var _crit;
var bonus, _crit;
_crit = crit(user, 'per', .5);
target.value += _crit / 2;
user.stats.exp += _crit;
return user.stats.gp += _crit;
target.value += _crit * .03;
bonus = ((target.value < 0 ? 0 : target.value) + 1) * _crit;
user.stats.exp += bonus;
return user.stats.gp += bonus;
}
},
stealth: {
@ -10140,7 +10162,11 @@ var global=self;/**
notes: "You share your thievery tools with the party to aid them in 'acquiring' more gold. The party's gold bonus for tasks is buffed for a day.",
cast: function(user, target) {
return _.each(target, function(member) {
return member.stats.buffs.per = user._statsComputed.per / 2;
var _base;
if ((_base = member.stats.buffs).per == null) {
_base.per = 0;
}
return member.stats.buffs.per += user._statsComputed.per * .2;
});
}
},
@ -10152,7 +10178,11 @@ var global=self;/**
notes: "You hurry your step and dance circles around your party's enemies. You assist your party, helping them do extra damage to a number of tasks equal to half your strength.",
cast: function(user, target) {
return _.each(target, function(member) {
return member.stats.buffs.str = user._statsComputed.str / 2;
var _base;
if ((_base = member.stats.buffs).str == null) {
_base.str = 0;
}
return member.stats.buffs.str = user._statsComputed.str * .2;
});
}
}
@ -10165,7 +10195,7 @@ var global=self;/**
target: 'self',
notes: 'Light covers your body, healing your wounds. You gain a boost to your health.',
cast: function(user, target) {
user.stats.hp += user._statsComputed.con + user._statsComputed.int;
user.stats.hp += (user._statsComputed.con + user._statsComputed.int + 10) * .5;
if (user.stats.hp > 50) {
return user.stats.hp = 50;
}
@ -10182,7 +10212,7 @@ var global=self;/**
if (target.type === 'reward') {
return;
}
return target.value += user._statsComputed.int * .1;
return target.value += user._statsComputed.int * .02;
});
}
},
@ -10194,7 +10224,11 @@ var global=self;/**
notes: "A magical aura surrounds your party members, protecting them from damage. Your party members gain a buff to their defense.",
cast: function(user, target) {
return _.each(target, function(member) {
return member.stats.buffs.con = user._statsComputed.con / 2;
var _base;
if ((_base = member.stats.buffs).con == null) {
_base.con = 0;
}
return member.stats.buffs.con = user._statsComputed.con * .4;
});
}
},
@ -10206,7 +10240,7 @@ var global=self;/**
notes: "Soothing light envelops your party and heals them of their injuries. Your party members gain a boost to their health.",
cast: function(user, target) {
return _.each(target, function(member) {
member.stats.hp += user._statsComputed.con / 2 + user._statsComputed.int / 2;
member.stats.hp += (user._statsComputed.con + user._statsComputed.int + 10) * .3;
if (member.stats.hp > 50) {
return member.stats.hp = 50;
}

View file

@ -220,7 +220,7 @@ api.spells =
target: 'task'
notes: 'With a crack, flames burst from your staff, scorching a task. You deal much higher damage to the task and gain additional experience.'
cast: (user, target) ->
target.value += user._statsComputed.int*.2
target.value += user._statsComputed.int * .02
user.stats.exp += Math.abs(target.value)
lightning:
text: 'Lightning Strike'
@ -229,7 +229,8 @@ api.spells =
target: 'task'
notes: 'A bolt of lightning pierces through a task. There is a high chance of a critical hit.'
cast: (user, target) ->
target.value += user._statsComputed.int*.3 * crit(user, 'per')
target.value += user._statsComputed.int * .02 * crit(user, 'per')
user.stats.exp += Math.abs(target.value)
frost:
text: 'Chilling Frost'
mana: 35
@ -239,7 +240,8 @@ api.spells =
cast: (user, target) ->
## lasts for 24 hours ##
_.each target, (member) ->
member.stats.buffs.int = user._statsComputed.int/2
member.stats.buffs.int ?= 0
member.stats.buffs.int += user._statsComputed.int * .2
darkness:
text: 'Shroud of Darkness'
mana: 30
@ -249,7 +251,8 @@ api.spells =
cast: (user, target) ->
## lasts for 24 hours ##
_.each target, (member) ->
member.stats.buffs.str = user._statsComputed.str/2
member.stats.buffs.str ?= 0
member.stats.buffs.str += user._statsComputed.int * .2
warrior:
smash:
@ -259,7 +262,7 @@ api.spells =
target: 'task'
notes: "You savagely hit a single task with all of your might, beating it into submission. The task's redness decreases."
cast: (user, target) ->
target.value += user._statsComputed.str*.3
target.value += user._statsComputed.str * .03
defensiveStance:
text: 'Defensive Stance'
mana: 25
@ -267,8 +270,8 @@ api.spells =
target: 'self'
notes: "You take a moment to relax your body and enter a defensive stance to ready yourself for the tasks' next onslaught. Reduces damage from dailies at the end of the day."
cast: (user, target) ->
## Only affects health loss at cron from dailies ##
user.stats.buffs.con = user._statsComputed.con/2
user.stats.buffs.con ?= 0
user.stats.buffs.con += user._statsComputed.con * .3
valorousPresence:
text: 'Valorous Presence'
mana: 20
@ -276,9 +279,9 @@ api.spells =
target: 'party'
notes: "Your presence emboldens the party. Their newfound courage gives them a boost of strength. Party members gain a buff to their STR."
cast: (user, target) ->
## lasts 24 hours ##
_.each target, (member) ->
member.stats.buffs.str = user._statsComputed.str/2
member.stats.buffs.str ?= 0
member.stats.buffs.str += user._statsComputed.str * .2
intimidate:
text: 'Intimidating Gaze'
mana: 15
@ -286,9 +289,9 @@ api.spells =
target: 'party'
notes: "Your gaze strikes fear into the hearts of your party's enemies. The party gains a moderate boost to defense."
cast: (user, target) ->
## lasts 24 hours ##
_.each target, (member) ->
member.stats.buffs.con = user._statsComputed.con/2
member.stats.buffs.con ?= 0
member.stats.buffs.con = user._statsComputed.con * .2
rogue:
pickPocket:
@ -298,7 +301,7 @@ api.spells =
target: 'task'
notes: "Your nimble fingers run through the task's pockets and 'find' some treasures for yourself. You gain an increased gold bonus on the task and a higher chance of an item drop."
cast: (user, target) ->
user.stats.gp += ((if target.value < 0 then 0 else target.value) + 1) + user._statsComputed.per/2
user.stats.gp += ((if target.value < 0 then 0 else target.value) + 1) + user._statsComputed.per * .3
backStab:
text: 'Backstab'
mana: 15
@ -307,9 +310,10 @@ api.spells =
notes: "Without a sound, you sweep behind a task and stab it in the back. You deal higher damage to the task, with a higher chance of a critical hit."
cast: (user, target) ->
_crit = crit(user, 'per', .5)
target.value += _crit/2
user.stats.exp += _crit
user.stats.gp += _crit
target.value += _crit * .03
bonus = ((if target.value < 0 then 0 else target.value) + 1) * _crit
user.stats.exp += bonus
user.stats.gp += bonus
stealth:
text: 'Tools of the Trade'
mana: 20
@ -319,7 +323,8 @@ api.spells =
cast: (user, target) ->
## lasts 24 hours ##
_.each target, (member) ->
member.stats.buffs.per = user._statsComputed.per/2
member.stats.buffs.per ?= 0
member.stats.buffs.per += user._statsComputed.per * .2
speedburst:
text: 'Burst of Speed'
mana: 25
@ -327,11 +332,9 @@ api.spells =
target: 'party'
notes: "You hurry your step and dance circles around your party's enemies. You assist your party, helping them do extra damage to a number of tasks equal to half your strength."
cast: (user, target) ->
# each party member gets this bonus to a number tasks == user.stats.str/2
# the effect lasts 24 hours, or when until the party member has used the effected number of tasks. whichever occurs sooner.
# the 24 hour limit is to help prevent it stacking on a player who has been absent for a long time.
_.each target, (member) ->
member.stats.buffs.str = user._statsComputed.str/2
member.stats.buffs.str ?= 0
member.stats.buffs.str = user._statsComputed.str * .2
healer:
heal:
@ -341,7 +344,7 @@ api.spells =
target: 'self'
notes: 'Light covers your body, healing your wounds. You gain a boost to your health.'
cast: (user, target) ->
user.stats.hp += user._statsComputed.con + user._statsComputed.int
user.stats.hp += (user._statsComputed.con + user._statsComputed.int + 10) *.5
user.stats.hp = 50 if user.stats.hp > 50
brightness:
text: 'Searing Brightness'
@ -352,7 +355,7 @@ api.spells =
cast: (user, target) ->
_.each user.tasks, (target) ->
return if target.type is 'reward'
target.value += user._statsComputed.int*.1
target.value += user._statsComputed.int * .02
protectAura:
text: 'Protective Aura'
mana: 30
@ -362,7 +365,8 @@ api.spells =
cast: (user, target) ->
## lasts 24 hours ##
_.each target, (member) ->
member.stats.buffs.con = user._statsComputed.con/2
member.stats.buffs.con ?= 0
member.stats.buffs.con = user._statsComputed.con * .4
heallAll:
text: 'Blessing'
mana: 25
@ -371,7 +375,7 @@ api.spells =
notes: "Soothing light envelops your party and heals them of their injuries. Your party members gain a boost to their health."
cast: (user, target) ->
_.each target, (member) ->
member.stats.hp += (user._statsComputed.con/2 + user._statsComputed.int/2)
member.stats.hp += (user._statsComputed.con + user._statsComputed.int + 10) * .3
member.stats.hp = 50 if member.stats.hp > 50
# Intercept all spells to reduce user.stats.mp after casting the spell