migrate "multiplier" setup to "priority" setup, with ! !! !!! instead

of 1 2 3. multipliers are now 1x 1.5x 2x
This commit is contained in:
Tyler Renelle 2013-03-04 11:33:36 -05:00
parent 1bd067f32f
commit 9517455a79
6 changed files with 31 additions and 24 deletions

View file

@ -1,6 +1,13 @@
MODIFIER = .02
priorityValue = (priority='!') ->
switch priority
when '!' then 1
when '!!' then 1.5
when '!!!' then 2
else 1
module.exports.tnl = (level) ->
return (Math.pow(level,2)*10)+(level*10)+80
@ -9,13 +16,13 @@ module.exports.tnl = (level) ->
{value} task.value for exp gain
{weaponStrength) weapon strength
{level} current user level
{multiplier} user-defined priority multiplier
{priority} user-defined priority multiplier
###
module.exports.expModifier = (value, weaponStrength, level, multiplier=1) ->
module.exports.expModifier = (value, weaponStrength, level, priority='!') ->
levelModifier = (level-1) * MODIFIER
weaponModifier = weaponStrength / 100
strength = 1 + weaponModifier + levelModifier
return value * strength * multiplier
return value * strength * priorityValue(priority)
###
Calculates HP modification based on level and armor defence
@ -23,20 +30,20 @@ module.exports.expModifier = (value, weaponStrength, level, multiplier=1) ->
{armorDefense} defense from armor
{helmDefense} defense from helm
{level} current user level
{multiplier} user-defined priority multiplier
{priority} user-defined priority multiplier
###
module.exports.hpModifier = (value, armorDefense, helmDefense, shieldDefense, level, multiplier=1) ->
module.exports.hpModifier = (value, armorDefense, helmDefense, shieldDefense, level, priority='!') ->
levelModifier = (level-1) * MODIFIER
armorModifier = (armorDefense + helmDefense + shieldDefense) / 100
defense = 1 - levelModifier + armorModifier
return value * defense * multiplier
return value * defense * priorityValue(priority)
###
Future use
{multiplier} user-defined priority multiplier
{priority} user-defined priority multiplier
###
module.exports.gpModifier = (value, modifier, multiplier=1) ->
return value * modifier * multiplier
module.exports.gpModifier = (value, modifier, priority='!') ->
return value * modifier * priorityValue(priority)
###
Calculates the next task.value based on direction

View file

@ -63,8 +63,8 @@ module.exports.app = (appExports, model) ->
appExports.closeOnliesNotification = (e, el) ->
user.set('flags.onliesNotification', 'hide')
appExports.closeMultiplierNotification = (e, el) ->
user.set('flags.multiplierNotification', 'hide')
appExports.closePriorityNotification = (e, el) ->
user.set('flags.priorityNotification', 'hide')
appExports.customizeGender = (e, el) ->
user.set 'preferences.gender', $(el).attr('data-value')

View file

@ -28,7 +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
priority = taskObj.priority or '!'
# 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'
@ -52,16 +52,16 @@ 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, multiplier)
modified = algos.expModifier(delta,weaponStrength,level, priority)
exp += modified*10
gp += algos.gpModifier(delta, 1, multiplier)
gp += algos.gpModifier(delta, 1, priority)
subtractPoints = ->
level = user.get('stats.lvl')
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, multiplier)
modified = algos.hpModifier(delta,armorDefense,helmDefense,shieldDefense,level, priority)
hp += modified
switch type

View file

@ -178,7 +178,7 @@ module.exports.app = (appExports, model) ->
$('[rel=tooltip]').tooltip()
$('[rel=popover]').popover()
appExports.tasksSetMultiplier = (e, el) ->
appExports.tasksSetPriority = (e, el) ->
dataId = $(el).parent('[data-id]').attr('data-id')
#"_user.tasks.#{dataId}"
model.at(e.target).set 'multiplier', parseInt($(el).attr('data-multiplier'))
model.at(e.target).set 'priority', $(el).attr('data-priority')

View file

@ -24,9 +24,9 @@
</div>
{/}
{#if equal(_user.flags.multiplierNotification, 'show')}
{#if equal(_user.flags.priorityNotification, 'show')}
<div class='alert alert-success'>
<a x-bind="click:closeMultiplierNotification" class=pull-right>[x]</a>
<p>New Feature: Priority Multiplier! You can now multiply "more important" tasks on a 1x, 2x, or 3x scale. <a target="_blank" href="https://trello.com/card/priority-multiplier/50e5d3684fe3a7266b0036d6/17">See details</a>.</p>
<a x-bind="click:closePriorityNotification" class=pull-right>[x]</a>
<p>New Feature: Priority Multiplier! You can now multiply "more important" tasks on a 1x, 1.5x, or 2x scale. <a target="_blank" href="https://trello.com/card/priority-multiplier/50e5d3684fe3a7266b0036d6/17">See details</a>.</p>
</div>
{/}

View file

@ -217,10 +217,10 @@
<hr/>
<div>
<div class="control-group btn-group priority-multiplier" 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{/}{#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>
<label>Priority <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.priority,'!')}active{/}{#unless :task.priority}active{/}" data-priority='!' x-bind=click:tasksSetPriority>!</button>
<button type="button" class="btn btn-info {#if equal(:task.priority,'!!')}active{/}" data-priority='!!' x-bind=click:tasksSetPriority>!!</button>
<button type="button" class="btn btn-info {#if equal(:task.priority,'!!!')}active{/}" data-priority='!!!' x-bind=click:tasksSetPriority>!!!</button>
</div>
</div>
{/}