Add comma_value function for pretty formatting big numbers (#1085)

This also applies the function to a number of labels in the skills window.
This commit is contained in:
Ascuas Funkeln 2020-05-05 18:39:11 +02:00 committed by GitHub
parent 63f5351016
commit 714c6b8fc0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 16 additions and 11 deletions

View File

@ -285,11 +285,11 @@ function onSkillButtonClick(button)
end end
function onExperienceChange(localPlayer, value) function onExperienceChange(localPlayer, value)
setSkillValue('experience', value) setSkillValue('experience', comma_value(value))
end end
function onLevelChange(localPlayer, value, percent) function onLevelChange(localPlayer, value, percent)
setSkillValue('level', value) setSkillValue('level', comma_value(value))
local text = tr('You have %s percent to go', 100 - percent) .. '\n' .. local text = tr('You have %s percent to go', 100 - percent) .. '\n' ..
tr('%s of experience left', expToAdvance(localPlayer:getLevel(), localPlayer:getExperience())) tr('%s of experience left', expToAdvance(localPlayer:getLevel(), localPlayer:getExperience()))
@ -300,7 +300,7 @@ function onLevelChange(localPlayer, value, percent)
local hoursLeft = (nextLevelExp - localPlayer:getExperience()) / expPerHour local hoursLeft = (nextLevelExp - localPlayer:getExperience()) / expPerHour
local minutesLeft = math.floor((hoursLeft - math.floor(hoursLeft))*60) local minutesLeft = math.floor((hoursLeft - math.floor(hoursLeft))*60)
hoursLeft = math.floor(hoursLeft) hoursLeft = math.floor(hoursLeft)
text = text .. '\n' .. tr('%d of experience per hour', expPerHour) text = text .. '\n' .. tr('%d of experience per hour', comma_value(expPerHour))
text = text .. '\n' .. tr('Next level in %d hours and %d minutes', hoursLeft, minutesLeft) text = text .. '\n' .. tr('Next level in %d hours and %d minutes', hoursLeft, minutesLeft)
end end
end end
@ -309,21 +309,21 @@ function onLevelChange(localPlayer, value, percent)
end end
function onHealthChange(localPlayer, health, maxHealth) function onHealthChange(localPlayer, health, maxHealth)
setSkillValue('health', health) setSkillValue('health', comma_value(health))
checkAlert('health', health, maxHealth, 30) checkAlert('health', health, maxHealth, 30)
end end
function onManaChange(localPlayer, mana, maxMana) function onManaChange(localPlayer, mana, maxMana)
setSkillValue('mana', mana) setSkillValue('mana', comma_value(mana))
checkAlert('mana', mana, maxMana, 30) checkAlert('mana', mana, maxMana, 30)
end end
function onSoulChange(localPlayer, soul) function onSoulChange(localPlayer, soul)
setSkillValue('soul', soul) setSkillValue('soul', comma_value(soul))
end end
function onFreeCapacityChange(localPlayer, freeCapacity) function onFreeCapacityChange(localPlayer, freeCapacity)
setSkillValue('capacity', freeCapacity) setSkillValue('capacity', comma_value(freeCapacity))
checkAlert('capacity', freeCapacity, localPlayer:getTotalCapacity(), 20) checkAlert('capacity', freeCapacity, localPlayer:getTotalCapacity(), 20)
end end
@ -397,7 +397,7 @@ function onRegenerationChange(localPlayer, regenerationTime)
end end
function onSpeedChange(localPlayer, speed) function onSpeedChange(localPlayer, speed)
setSkillValue('speed', speed) setSkillValue('speed', comma_value(speed))
onBaseSpeedChange(localPlayer, localPlayer:getBaseSpeed()) onBaseSpeedChange(localPlayer, localPlayer:getBaseSpeed())
end end
@ -407,7 +407,7 @@ function onBaseSpeedChange(localPlayer, baseSpeed)
end end
function onMagicLevelChange(localPlayer, magiclevel, percent) function onMagicLevelChange(localPlayer, magiclevel, percent)
setSkillValue('magiclevel', magiclevel) setSkillValue('magiclevel', comma_value(magiclevel))
setSkillPercent('magiclevel', percent, tr('You have %s percent to go', 100 - percent)) setSkillPercent('magiclevel', percent, tr('You have %s percent to go', 100 - percent))
onBaseMagicLevelChange(localPlayer, localPlayer:getBaseMagicLevel()) onBaseMagicLevelChange(localPlayer, localPlayer:getBaseMagicLevel())
@ -418,7 +418,7 @@ function onBaseMagicLevelChange(localPlayer, baseMagicLevel)
end end
function onSkillChange(localPlayer, id, level, percent) function onSkillChange(localPlayer, id, level, percent)
setSkillValue('skillId' .. id, level) setSkillValue('skillId' .. id, comma_value(level))
setSkillPercent('skillId' .. id, percent, tr('You have %s percent to go', 100 - percent)) setSkillPercent('skillId' .. id, percent, tr('You have %s percent to go', 100 - percent))
onBaseSkillChange(localPlayer, id, localPlayer:getSkillBaseLevel(id)) onBaseSkillChange(localPlayer, id, localPlayer:getSkillBaseLevel(id))

View File

@ -8,4 +8,9 @@ function dirtostring(dir)
return k return k
end end
end end
end end
function comma_value(n)
local left,num,right = string.match(n,'^([^%d]*%d)(%d*)(.-)$')
return left..(num:reverse():gsub('(%d%d%d)','%1,'):reverse())..right
end