add multiplier functionality to task scoring

This commit is contained in:
Tyler Renelle 2013-03-03 18:18:49 -05:00
parent 1a335cc68a
commit c33c6c3480
3 changed files with 16 additions and 15 deletions

View file

@ -10,11 +10,11 @@ module.exports.tnl = (level) ->
{weaponStrength) weapon strength
{level} current user level
###
module.exports.expModifier = (value, weaponStrength, level) ->
levelModifier = (level-1) * MODIFIER
weaponModifier = weaponStrength / 100
strength = 1 + weaponModifier + levelModifier
return value * strength
module.exports.expModifier = (value, weaponStrength, level, multiplier=1) ->
levelModifier = (level-1) * MODIFIER
weaponModifier = weaponStrength / 100
strength = 1 + weaponModifier + levelModifier
return value * strength * multiplier
###
Calculates HP modification based on level and armor defence
@ -23,17 +23,17 @@ module.exports.expModifier = (value, weaponStrength, level) ->
{helmDefense} defense from helm
{level} current user level
###
module.exports.hpModifier = (value, armorDefense, helmDefense, shieldDefense, level) ->
levelModifier = (level-1) * MODIFIER
armorModifier = (armorDefense + helmDefense + shieldDefense) / 100
defense = 1 - levelModifier + armorModifier
return value * defense
module.exports.hpModifier = (value, armorDefense, helmDefense, shieldDefense, level, multiplier=1) ->
levelModifier = (level-1) * MODIFIER
armorModifier = (armorDefense + helmDefense + shieldDefense) / 100
defense = 1 - levelModifier + armorModifier
return value * defense * multiplier
###
Future use
###
module.exports.gpModifier = (value, modifier) ->
return value * modifier
module.exports.gpModifier = (value, modifier, multiplier=1) ->
return value * modifier * multiplier
###
Calculates the next task.value based on direction

View file

@ -28,6 +28,7 @@ score = (model, taskId, direction, times, batch, cron) ->
taskPath = "tasks.#{taskId}"
taskObj = obj.tasks[taskId]
{type, value} = taskObj
multiplier = if taskObj.multiplier then parseInt(taskObj.multiplier) else 1
# If they're trying to purhcase a too-expensive reward, confirm they want to take a hit for it
if taskObj.value > obj.stats.gp and taskObj.type is 'reward'
@ -51,7 +52,7 @@ score = (model, taskId, direction, times, batch, cron) ->
addPoints = ->
level = user.get('stats.lvl')
weaponStrength = items.items.weapon[user.get('items.weapon')].strength
modified = algos.expModifier(delta,weaponStrength,level)
modified = algos.expModifier(delta,weaponStrength,level, multiplier)
exp += modified*10
gp += delta
@ -60,7 +61,7 @@ score = (model, taskId, direction, times, batch, cron) ->
armorDefense = items.items.armor[user.get('items.armor')].defense
helmDefense = items.items.head[user.get('items.head')].defense
shieldDefense = items.items.shield[user.get('items.shield')].defense
modified = algos.hpModifier(delta,armorDefense,helmDefense,shieldDefense,level)
modified = algos.hpModifier(delta,armorDefense,helmDefense,shieldDefense,level, multiplier)
hp += modified
switch type

View file

@ -214,7 +214,7 @@
<a x-bind="click:tasksToggleAdvanced">Advanced</a>
<div class="control-group btn-group priority-multiplier hide advanced" data-id="{{:task.id}}">
<label>Multiplier <a href="https://trello.com/card/priority-multiplier/50e5d3684fe3a7266b0036d6/17" target="_blank"><i class='icon-question-sign'></i></a></label>
<button type="button" class="btn btn-info {#if equal(:task.multiplier,1)}active{/}" data-multiplier='1' x-bind=click:tasksSetMultiplier>1</button>
<button type="button" class="btn btn-info {#if equal(:task.multiplier,1)}active{/}{#unless :task.multiplier}active{/}" data-multiplier='1' x-bind=click:tasksSetMultiplier>1</button>
<button type="button" class="btn btn-info {#if equal(:task.multiplier,2)}active{/}" data-multiplier='2' x-bind=click:tasksSetMultiplier>2</button>
<button type="button" class="btn btn-info {#if equal(:task.multiplier,3)}active{/}" data-multiplier='3' x-bind=click:tasksSetMultiplier>3</button>
</div>