2013-03-02 18:23:43 +00:00
|
|
|
|
|
|
|
|
MODIFIER = .02
|
|
|
|
|
|
2013-03-04 16:33:36 +00:00
|
|
|
priorityValue = (priority='!') ->
|
|
|
|
|
switch priority
|
|
|
|
|
when '!' then 1
|
|
|
|
|
when '!!' then 1.5
|
|
|
|
|
when '!!!' then 2
|
|
|
|
|
else 1
|
|
|
|
|
|
2013-03-02 18:23:43 +00:00
|
|
|
module.exports.tnl = (level) ->
|
|
|
|
|
return (Math.pow(level,2)*10)+(level*10)+80
|
|
|
|
|
|
|
|
|
|
###
|
|
|
|
|
Calculates Exp modificaiton based on level and weapon strength
|
|
|
|
|
{value} task.value for exp gain
|
|
|
|
|
{weaponStrength) weapon strength
|
|
|
|
|
{level} current user level
|
2013-03-04 16:33:36 +00:00
|
|
|
{priority} user-defined priority multiplier
|
2013-03-02 18:23:43 +00:00
|
|
|
###
|
2013-03-04 16:33:36 +00:00
|
|
|
module.exports.expModifier = (value, weaponStrength, level, priority='!') ->
|
2013-03-03 23:18:49 +00:00
|
|
|
levelModifier = (level-1) * MODIFIER
|
|
|
|
|
weaponModifier = weaponStrength / 100
|
|
|
|
|
strength = 1 + weaponModifier + levelModifier
|
2013-03-04 16:33:36 +00:00
|
|
|
return value * strength * priorityValue(priority)
|
2013-03-02 18:23:43 +00:00
|
|
|
|
|
|
|
|
###
|
|
|
|
|
Calculates HP modification based on level and armor defence
|
|
|
|
|
{value} task.value for hp loss
|
|
|
|
|
{armorDefense} defense from armor
|
|
|
|
|
{helmDefense} defense from helm
|
|
|
|
|
{level} current user level
|
2013-03-04 16:33:36 +00:00
|
|
|
{priority} user-defined priority multiplier
|
2013-03-02 18:23:43 +00:00
|
|
|
###
|
2013-03-04 16:33:36 +00:00
|
|
|
module.exports.hpModifier = (value, armorDefense, helmDefense, shieldDefense, level, priority='!') ->
|
2013-03-03 23:18:49 +00:00
|
|
|
levelModifier = (level-1) * MODIFIER
|
|
|
|
|
armorModifier = (armorDefense + helmDefense + shieldDefense) / 100
|
|
|
|
|
defense = 1 - levelModifier + armorModifier
|
2013-03-04 16:33:36 +00:00
|
|
|
return value * defense * priorityValue(priority)
|
2013-03-02 18:23:43 +00:00
|
|
|
|
|
|
|
|
###
|
|
|
|
|
Future use
|
2013-03-04 16:33:36 +00:00
|
|
|
{priority} user-defined priority multiplier
|
2013-03-02 18:23:43 +00:00
|
|
|
###
|
2013-03-04 16:33:36 +00:00
|
|
|
module.exports.gpModifier = (value, modifier, priority='!') ->
|
|
|
|
|
return value * modifier * priorityValue(priority)
|
2013-03-02 18:23:43 +00:00
|
|
|
|
|
|
|
|
###
|
|
|
|
|
Calculates the next task.value based on direction
|
2013-03-02 20:02:57 +00:00
|
|
|
Uses a capped inverse log y=.95^x, y>= -5
|
2013-03-02 18:23:43 +00:00
|
|
|
{currentValue} the current value of the task
|
|
|
|
|
{direction} up or down
|
|
|
|
|
###
|
|
|
|
|
module.exports.taskDeltaFormula = (currentValue, direction) ->
|
2013-03-02 20:02:57 +00:00
|
|
|
if direction is 'up'
|
|
|
|
|
delta = Math.max(Math.pow(0.95,currentValue),0.25)
|
|
|
|
|
else
|
|
|
|
|
delta = -Math.min(Math.pow(0.95,currentValue),5)
|
2013-03-04 22:04:02 +00:00
|
|
|
#console.log("CV = " + currentValue + " Dir = " + direction + " delta = " + delta)
|
2013-03-05 09:51:42 +00:00
|
|
|
delta = 20 if delta > 20
|
2013-03-02 18:23:43 +00:00
|
|
|
return delta
|