Module:DoD: Difference between revisions
No edit summary |
No edit summary |
||
| Line 12: | Line 12: | ||
-- Extract the number of dice, number of sides per dice, and modifier | -- Extract the number of dice, number of sides per dice, and modifier | ||
local numDice, diceType, modifier = string.match(diceCode, "(%d+)d(%d+)%+? | local numDice, diceType, modifier = string.match(diceCode, "(%d+)d(%d+)([%+%-]?%d*)") | ||
-- If no modifier is provided, set it to 0 | -- If no modifier is provided, set it to 0 | ||
| Line 23: | Line 23: | ||
-- Calculate the median value of rolling the dice | -- Calculate the median value of rolling the dice | ||
local median = | local median = 0 | ||
local totalSides = tonumber(diceType) | |||
-- Calculate the median value of rolling the dice | |||
if totalSides then | |||
-- Calculate median for each die roll | |||
local medianPerRoll = (totalSides + 1) / 2 | |||
-- Calculate the total median without modifier | |||
median = numDice * medianPerRoll | |||
-- Add modifier to the total median | |||
median = median + modifier | |||
else | |||
return "Error: Invalid number of sides for dice" | |||
end | |||
return median | return median | ||
Revision as of 14:03, 6 February 2024
Script error: The function "skills" does not exist.
0-22 : Cost of 3 : Script error: The function "calculate_A_cost" does not exist.
0-18 : Cost of 2 : Script error: The function "calculate_A_cost" does not exist.
5-10 : Cost of 1 : Script error: The function "calculate_A_cost" does not exist.
B_Skill at level 1 : Cost of 5 Script error: The function "calculate_B_cost" does not exist.
B_Skill at level 2 : Cost of 5 Script error: The function "calculate_B_cost" does not exist.
B_Skill at level 3 : Cost of 5 Script error: The function "calculate_B_cost" does not exist.
B_Skill at level 4 : Cost of 5 Script error: The function "calculate_B_cost" does not exist.
B_Skill at level 5 : Cost of 5 Script error: The function "calculate_B_cost" does not exist.
B_Skill at level 5 from 2 : Cost of 5 Script error: The function "calculate_B_cost" does not exist.
local p = {}
-- Function to parse D&D dice codes and return median value
function p.calculateMedian(frame)
-- Extract the dice code from the function argument
local diceCode = frame.args[1]
-- Check if diceCode is nil or empty
if not diceCode then
return "Error: No valid input provided"
end
-- Extract the number of dice, number of sides per dice, and modifier
local numDice, diceType, modifier = string.match(diceCode, "(%d+)d(%d+)([%+%-]?%d*)")
-- If no modifier is provided, set it to 0
modifier = tonumber(modifier) or 0
-- Check if any of the extracted values are nil
if not numDice or not diceType then
return "Error: Invalid dice code"
end
-- Calculate the median value of rolling the dice
local median = 0
local totalSides = tonumber(diceType)
-- Calculate the median value of rolling the dice
if totalSides then
-- Calculate median for each die roll
local medianPerRoll = (totalSides + 1) / 2
-- Calculate the total median without modifier
median = numDice * medianPerRoll
-- Add modifier to the total median
median = median + modifier
else
return "Error: Invalid number of sides for dice"
end
return median
end
return p