Module:DoD: Difference between revisions

From Empire of Dragons
Jump to navigation Jump to search
No edit summary
No edit summary
Line 40: Line 40:
     return median
     return median
end
end
function p.skills()
return skillist
end


return p
return p

Revision as of 09:28, 7 February 2024


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 = math.ceil (median + modifier)
    else
        return "Error: Invalid number of sides for dice"
    end

    return median
end

function p.skills()

return skillist	
end


return p