Модуль:CurrencyDiamondsConverter
Перейти к навигации
Перейти к поиску
| {{#invoke:CurrencyDiamondsConverter|currencyToDiamonds|cog=2}} | 8 |
| {{#invoke:CurrencyDiamondsConverter|diamondsToCurrency|diamonds=2}} | 2|Звездочка}} |
local p = {}
local oneDiamondCost = 16
local spurNominal = 1
local bevelNominal = 8
local sprocketNominal = 16
local cogNominal = 64
local crownNominal = 512
local sunNominal = 4096
function p.currencyToDiamonds(frame)
local spur = tonumber(frame.args['spur']) or 0
local bevel = tonumber(frame.args['bevel']) or 0
local sprocket = tonumber(frame.args['sprocket']) or 0
local cog = tonumber(frame.args['cog']) or 0
local crown = tonumber(frame.args['crown']) or 0
local sun = tonumber(frame.args['sun']) or 0
local sum = spur * spurNominal + bevel * bevelNominal + sprocket * sprocketNominal + cog * cogNominal + crown * crownNominal + sun * sunNominal
local diamonds = math.floor(sum / oneDiamondCost + 0.5)
return diamonds
end
function p.diamondsToCurrency(frame)
local diamonds = tonumber(frame.args['diamonds']) or 0
local sum = diamonds * oneDiamondCost
local sun = math.floor(sum / sunNominal)
sum = sum - sun * sunNominal
local crown = math.floor(sum / crownNominal)
sum = sum - crown * crownNominal
local cog = math.floor(sum / cogNominal)
sum = sum - cog * cogNominal
local sprocket = math.floor(sum / sprocketNominal)
sum = sum - sprocket * sprocketNominal
local bevel = math.floor(sum / bevelNominal)
sum = sum - bevel * bevelNominal
local spur = math.floor(sum / spurNominal)
local coinTemplate = '{{Currency/Coin|%i|%s}}'
local result = ''
if sun > 0 then
result = result .. string.format(coinTemplate, sun, 'Солнышко')
end
if crown > 0 then
result = result .. string.format(coinTemplate, crown, 'Коронка')
end
if cog > 0 then
result = result .. string.format(coinTemplate, cog, 'Шестеренка')
end
if sprocket > 0 then
result = result .. string.format(coinTemplate, sprocket, 'Звездочка')
end
if bevel > 0 then
result = result .. string.format(coinTemplate, bevel, 'Фаска')
end
if spur > 0 then
result = result .. string.format(coinTemplate, spur, 'Шпора')
end
return result
end
return p