After that, I refined it a bit with the help of Funnyman and BTB in Chat, and decided to share it here.

Download Here
The only weapons this isn't really applicable for are those that follow a different formula than the default one that aren't named Omega Weapon.
Damage Coefficient is specifically for the Omega Weapon formula. If you select no and plug something in there (which, you have to plug something in there or the program will yell at you), it simply won't be used in the calculation.
As you can see, variance and multipliers are both included.
This is code that I plan to probably expand on at a later date. As I said it started as a 10 minute job but kinda branched out a little from there.
The calculator itself is coded in Visual Basic, and if anyone wants me to, I don't really have a problem with releasing the source code either.
Feel free to let me know what you guys think.
Source Code
	Spoiler 
	
						
						Public Class Form1
    Dim intMaxHP As Integer = 1 'Initialize
    Dim intCurHP As Integer = 1 'integers
    Dim intLvl As Integer = 1 'to
    Dim intVgr As Integer = 1 '1
    Dim intSta As Integer = 1 'to
    Dim intBat As Integer = 1 'prevent
    Dim intDef As Integer = 1 'DivideByZero
    Dim intCoe As Integer = 1 'exceptions
    Dim intDmg As Integer = 1
    Dim intVarMin As Integer
    Dim intVarAvg As Integer
    Dim intVarMax As Integer
    Dim intMult As Integer = 0
    Dim boolDef As Boolean = True
    Dim boolSafe As Boolean = False
    Dim boolOmega As Boolean = False
    Dim boolPower As Boolean = False
    Dim boolBserk As Boolean = False
    Dim boolMorph As Boolean = False
    Dim boolJump As Boolean = False
    Dim boolJumpSpear As Boolean = False
    Dim boolThrow As Boolean = False
    Dim boolCrit As Boolean = False
    Dim boolValiant As Boolean = False
    Private Sub Label7_Click(sender As Object, e As EventArgs) Handles lblOutputMin.Click
    End Sub
    Private Sub btnCalc_Click(sender As Object, e As EventArgs) Handles btnCalc.Click
        If IsNumeric(txtMaxHP.Text) Then
            intMaxHP = Convert.ToInt32(txtMaxHP.Text) 'convert
            If IsNumeric(txtCurHP.Text) Then
                intCurHP = Convert.ToInt32(txtCurHP.Text) 'text
                If IsNumeric(txtLvl.Text) Then
                    intLvl = Convert.ToInt32(txtLvl.Text) 'boxes
                    If IsNumeric(txtVig.Text) Then
                        intVgr = Convert.ToInt32(txtVig.Text) 'to
                        If IsNumeric(txtStam.Text) Then
                            intSta = Convert.ToInt32(txtStam.Text) 'usable
                            If IsNumeric(txtBat.Text) Then
                                intBat = Convert.ToInt32(txtBat.Text) 'numbers
                                If IsNumeric(txtCoe.Text) Then
                                    intCoe = Convert.ToInt32(txtCoe.Text) 'for
                                    If IsNumeric(txtDef.Text) Then
                                        intDef = Convert.ToInt32(txtDef.Text) 'calculations
                                    Else
                                        MsgBox("You did not enter a numeric value.", , "Invalid Input") 'yell
                                        txtDef.Clear()
                                        txtDef.Focus()
                                    End If
                                Else
                                    MsgBox("You did not enter a numeric value.", , "Invalid Input") 'at
                                    txtCoe.Clear()
                                    txtCoe.Focus()
                                End If
                            Else
                                MsgBox("You did not enter a numeric value.", , "Invalid Input") 'user
                                txtBat.Clear()
                                txtBat.Focus()
                            End If
                        Else
                            MsgBox("You did not enter a numeric value.", , "Invalid Input") 'for
                            txtStam.Clear()
                            txtStam.Focus()
                        End If
                    Else
                        MsgBox("You did not enter a numeric value.", , "Invalid Input") 'not
                        txtVig.Clear()
                        txtVig.Focus()
                    End If
                Else
                    MsgBox("You did not enter a numeric value.", , "Invalid Input") 'entering
                    txtLvl.Clear()
                    txtLvl.Focus()
                End If
            Else
                MsgBox("You did not enter a numeric value.", , "Invalid Input") 'valid
                txtCurHP.Clear()
                txtCurHP.Focus()
            End If
        Else
            MsgBox("You did not enter a numeric value.", , "Invalid Input") 'input
            txtMaxHP.Clear()
            txtMaxHP.Focus()
        End If
        intDmg = 2 * intVgr + intBat + (((intLvl ^ 2) * intVgr / 16) * (intBat / 16)) / 24 'basic damage formula
        If chkCrit.Checked = True Then 'if Critical Hit is checked, set boolCrit to True
            boolCrit = True
        End If
        If chkBserk.Checked = True Then 'if Bserk is checked, set boolBserk to True
            boolBserk = True
        End If
        If chkMorph.Checked = True Then 'if Morph is checked, set boolMorph to True
            boolMorph = True
        End If
        If chkJump.Checked = True Then 'if Jump is checked, set boolJump to True
            boolJump = True
        End If
        If chkJumpSpear.Checked = True Then 'if Jump (Spear) is checked, set boolJumpSpear to True
            boolJumpSpear = True
        End If
        If chkThrow.Checked = True Then 'if Throw is checked, set boolThrow to True
            boolThrow = True
        End If
        If chkPower.Checked = True Then 'if Power Glove is checked, set boolPower to True
            boolPower = True
        End If
        If chkSafe.Checked = True Then 'if Safe is checked, set boolSafe to True
            boolSafe = True
        End If
        If chkValiant.Checked = True Then 'if Ignore Defense is checked, then ignore defense and Safe check
            boolDef = False
            boolSafe = False
            boolValiant = True
        End If
        If chkOmega.Checked = True Then 'if Omega Weapon is checked, ignore defense and Safe check, turn off all multipliers besides Power Glove, and use Omega Weapon formula
            boolDef = False
            boolOmega = True
            boolSafe = False
            boolBserk = False
            boolMorph = False
            boolJump = False
            boolJumpSpear = False
            boolThrow = False
            boolCrit = False
        End If
        If boolPower = True Then
            intDmg *= 1.25
        End If
        If boolValiant = True Then
            intDmg += (intMaxHP - intCurHP)
        End If
        If boolOmega = True Then 'if boolOmega is True, use Omega Weapon formula
            intDmg = intDmg * (intLvl + (2 * intSta)) 'Step 1
            intDmg = intDmg * ((intCurHP / 256) + 1) / ((intMaxHP / 256) + 1) 'Step 2
            intDmg = (intDmg / 128) + 1 'Step 3
            intDmg = intDmg + (intSta * intCoe) 'Step 4
        End If
        If boolDef = True Then
            intDmg = (intDmg * (255 - intDef) / 256) + 1
        End If
        If boolSafe = True Then
            intDmg = (intDmg * 170 / 256) + 1
        End If
        If boolCrit = True Then 'if Critical Hit is checked, increment multiplier by 2
            intMult += 2
        End If
        If boolBserk = True Then 'if Bserk is checked, increment multiplier by 1
            intMult += 1
        End If
        If boolMorph = True Then 'if Morph is checked, increment multiplier by 1
            intMult += 1
        End If
        If boolJump = True Then 'if Jump is checked, increment multiplier by 1
            intMult += 1
        End If
        If boolJumpSpear = True Then 'if Jump (Spear) is checked, increment multiplier by 2
            intMult += 2
        End If
        If boolThrow = True Then 'if Throw is checked, increment multiplier by 2
            intMult += 2
        End If
        intDmg *= ((intMult * 0.5) + 1)
        intVarMin = intDmg * (224 / 256) 'minimum damage variance (lowest damage)
        intVarAvg = intDmg * (240 / 256) 'average damage variance (average damage)
        intVarMax = intDmg * (255 / 256) 'maximum damage variance (maximum damage)
        lblOutputMin.Text = "Minimum Damage: " & intVarMin 'output statement for minimum damage variance (lowest damage)
        lblOutputAvg.Text = "Average Damage: " & intVarAvg 'output statement for average damage variance (average damage)
        lblOutputMax.Text = "Maximum Damage: " & intVarMax 'output statement for maximum damage variance (maximum damage)
        intDmg = 0 'reset damage count to avoid snowballing values
        intMult = 0 'reset mult for the same reason as damage
        btnClear.Enabled = True
        boolDef = True 'reset
        boolSafe = False 'booleans
        boolOmega = False 'to
        boolPower = False 'default values
        boolBserk = False
        boolMorph = False
        boolJump = False
        boolJumpSpear = False
        boolThrow = False
        boolCrit = False
        boolValiant = False
    End Sub
    Private Sub btnClear_Click(sender As Object, e As EventArgs) Handles btnClear.Click
        txtMaxHP.Clear()
        txtCurHP.Clear()
        txtLvl.Clear()
        txtVig.Clear()
        txtStam.Clear()
        txtBat.Clear()
        txtCoe.Clear()
        txtDef.Clear()
        lblOutputMin.Text = "Minimum Damage: "
        lblOutputAvg.Text = "Average Damage: "
        lblOutputMax.Text = "Maximum Damage: "
        txtMaxHP.Focus()
        boolDef = True 'reset
        boolSafe = False 'booleans
        boolOmega = False 'to
        boolPower = False 'default values
        boolBserk = False
        boolMorph = False
        boolJump = False
        boolJumpSpear = False
        boolThrow = False
        boolCrit = False
        boolValiant = False
        chkSafe.Checked = False 'uncheck
        chkBserk.Checked = False 'all
        chkPower.Checked = False 'checkboxes
        chkOmega.Checked = False
        chkValiant.Checked = False
        chkMorph.Checked = False
        chkJump.Checked = False
        chkJumpSpear.Checked = False
        chkThrow.Checked = False
        chkCrit.Checked = False
        btnClear.Enabled = False 'disable clear button
    End Sub
    Private Sub btnExit_Click(sender As Object, e As EventArgs) Handles btnExit.Click
        Close()
    End Sub
End ClassThis post has been edited by Advent: 01 February 2015 - 03:41 PM









