Guest User

DnD Stat Roller

a guest
Apr 24th, 2014
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. [void] [System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")
  2. [void] [System.Reflection.Assembly]::LoadWithPartialName("System.Drawing")
  3.  
  4. #1..8 | ForEach {Get-Random -Minimum 1 -Maximum 20}
  5.  
  6. Function Roll-Dice()
  7.     {
  8.     $Top3 = 1..4 | foreach {Get-Random -min 1 -max 7} | Sort -Descending | Select -First 3
  9.     $TOPROLL = $Top3[0] + $Top3[1] + $Top3[2]
  10.     Invoke-Expression -command $TOPROLL
  11.     }
  12.  
  13. $Items = Roll-Dice
  14.  
  15. $objForm = New-Object System.Windows.Forms.Form
  16. $objForm.Text = "Take Hitpoints"
  17. $objForm.Size = New-Object System.Drawing.Size(380,300)
  18. $objForm.StartPosition = "CenterScreen"
  19. $objForm.KeyPreview = $True
  20.  
  21. # Dice Roll Labels
  22.     $objStrRollLabel = New-Object System.Windows.Forms.Label
  23.     $objStrRollLabel.Location = New-Object System.Drawing.Size(50,15)
  24.     $objStrRollLabel.Size = New-Object System.Drawing.Size(30,15)
  25.     $objStrRollLabel.Text = "Str"
  26.     $objForm.Controls.Add($objStrRollLabel)
  27.  
  28.     $objConRollLabel = New-Object System.Windows.Forms.Label
  29.     $objConRollLabel.Location = New-Object System.Drawing.Size(100,15)
  30.     $objConRollLabel.Size = New-Object System.Drawing.Size(30,15)
  31.     $objConRollLabel.Text = "Con"
  32.     $objForm.Controls.Add($objConRollLabel)
  33.  
  34.     $objIntRollLabel = New-Object System.Windows.Forms.Label
  35.     $objIntRollLabel.Location = New-Object System.Drawing.Size(150,15)
  36.     $objIntRollLabel.Size = New-Object System.Drawing.Size(30,15)
  37.     $objIntRollLabel.Text = "Int"
  38.     $objForm.Controls.Add($objIntRollLabel)
  39.  
  40.     $objWisRollLabel = New-Object System.Windows.Forms.Label
  41.     $objWisRollLabel.Location = New-Object System.Drawing.Size(200,15)
  42.     $objWisRollLabel.Size = New-Object System.Drawing.Size(30,15)
  43.     $objWisRollLabel.Text = "Wis"
  44.     $objForm.Controls.Add($objWisRollLabel)
  45.    
  46.     $objChaRollLabel = New-Object System.Windows.Forms.Label
  47.     $objChaRollLabel.Location = New-Object System.Drawing.Size(250,15)
  48.     $objChaRollLabel.Size = New-Object System.Drawing.Size(30,15)
  49.     $objChaRollLabel.Text = "Cha"
  50.     $objForm.Controls.Add($objChaRollLabel)
  51.    
  52.     $objDexRollLabel = New-Object System.Windows.Forms.Label
  53.     $objDexRollLabel.Location = New-Object System.Drawing.Size(300,15)
  54.     $objDexRollLabel.Size = New-Object System.Drawing.Size(30,15)
  55.     $objDexRollLabel.Text = "Dex"
  56.     $objForm.Controls.Add($objDexRollLabel)
  57.    
  58. # Dice Roll Fields
  59.     $objStrRoll = New-Object System.Windows.Forms.Listbox
  60.     $objStrRoll.Location = New-Object System.Drawing.Size(50,40)
  61.     $objStrRoll.Size = New-Object System.Drawing.Size(30,20)
  62.     $objForm.Controls.Add($objStrRoll)
  63.  
  64.     $objConRoll = New-Object System.Windows.Forms.Listbox
  65.     $objConRoll.Location = New-Object System.Drawing.Size(100,40)
  66.     $objConRoll.Size = New-Object System.Drawing.Size(30,20)
  67.     $objForm.Controls.Add($objConRoll)
  68.  
  69.     $objIntRoll = New-Object System.Windows.Forms.Listbox
  70.     $objIntRoll.Location = New-Object System.Drawing.Size(150,40)
  71.     $objIntRoll.Size = New-Object System.Drawing.Size(30,20)
  72.     $objForm.Controls.Add($objIntRoll)
  73.  
  74.     $objWisRoll = New-Object System.Windows.Forms.Listbox
  75.     $objWisRoll.Location = New-Object System.Drawing.Size(200,40)
  76.     $objWisRoll.Size = New-Object System.Drawing.Size(30,20)
  77.     $objForm.Controls.Add($objWisRoll)
  78.    
  79.     $objChaRoll = New-Object System.Windows.Forms.Listbox
  80.     $objChaRoll.Location = New-Object System.Drawing.Size(250,40)
  81.     $objChaRoll.Size = New-Object System.Drawing.Size(30,20)
  82.     $objForm.Controls.Add($objChaRoll)
  83.    
  84.     $objDexRoll = New-Object System.Windows.Forms.Listbox
  85.     $objDexRoll.Location = New-Object System.Drawing.Size(300,40)
  86.     $objDexRoll.Size = New-Object System.Drawing.Size(30,20)
  87.     $objForm.Controls.Add($objDexRoll)
  88.  
  89. # Dice Roll Clicks
  90.     $objStrRoll.Add_Click(
  91.         {
  92.         $cmdlet = $objStrRoll.SelectedItem
  93.         $objStatStr.Items.Clear()
  94.        
  95.         If ($cmdlet –ne $Null){[void] $objStatStr.Items.Add($cmdlet)}
  96.         })
  97.  
  98.     $objConRoll.Add_Click(
  99.         {
  100.         $cmdlet = $objConRoll.SelectedItem
  101.         $objStatCon.Items.Clear()
  102.        
  103.         If ($cmdlet –ne $Null){[void] $objStatCon.Items.Add($cmdlet)}
  104.         })
  105.  
  106.     $objIntRoll.Add_Click(
  107.         {
  108.         $cmdlet = $objIntRoll.SelectedItem
  109.         $objStatInt.Items.Clear()
  110.        
  111.         If ($cmdlet –ne $Null){[void] $objStatInt.Items.Add($cmdlet)}
  112.         })
  113.  
  114.     $objWisRoll.Add_Click(
  115.         {
  116.         $cmdlet = $objWisRoll.SelectedItem
  117.         $objStatWis.Items.Clear()
  118.        
  119.         If ($cmdlet –ne $Null){[void] $objStatWis.Items.Add($cmdlet)}
  120.         })
  121.  
  122.     $objChaRoll.Add_Click(
  123.         {
  124.         $cmdlet = $objChaRoll.SelectedItem
  125.         $objStatCha.Items.Clear()
  126.        
  127.         If ($cmdlet –ne $Null){[void] $objStatCha.Items.Add($cmdlet)}
  128.         })
  129.    
  130.     $objDexRoll.Add_Click(
  131.         {
  132.         $cmdlet = $objDexRoll.SelectedItem
  133.         $objStatDex.Items.Clear()
  134.        
  135.         If ($cmdlet –ne $Null){[void] $objStatDex.Items.Add($cmdlet)}
  136.         })
  137.    
  138. # Buttons
  139.     $DiceRollButton = New-Object System.Windows.Forms.Button
  140.     $DiceRollButton.Location = New-Object System.Drawing.Size(280,80)
  141.     $DiceRollButton.Size = New-Object System.Drawing.Size(50,23)
  142.     $DiceRollButton.Text = "Roll All"
  143.     $DiceRollButton.Add_Click(
  144.         {
  145.         #Clear Selected Stats
  146.         $objStatStr.Items.Clear();$objStatCon.Items.Clear();$objStatInt.Items.Clear();$objStatWis.Items.Clear();$objStatCha.Items.Clear();$objStatDex.Items.Clear()  
  147.         #Clear all current rolls
  148.         $objStrRoll.Items.Clear();$objConRoll.Items.Clear();$objIntRoll.Items.Clear();$objWisRoll.Items.Clear();$objChaRoll.Items.Clear();$objDexRoll.Items.Clear()
  149.         #Populate new rolls for all stat roll fields
  150.         foreach ($item in Roll-Dice){[void] $objStrRoll.Items.Add($item)}
  151.         foreach ($item in Roll-Dice){[void] $objConRoll.Items.Add($item)}
  152.         foreach ($item in Roll-Dice){[void] $objIntRoll.Items.Add($item)}
  153.         foreach ($item in Roll-Dice){[void] $objWisRoll.Items.Add($item)}
  154.         foreach ($item in Roll-Dice){[void] $objChaRoll.Items.Add($item)}
  155.         ForEach ($item in Roll-Dice){[void] $objDexRoll.Items.Add($item)}
  156.         })
  157.     $objForm.Controls.Add($DiceRollButton)
  158.  
  159. # Stat Labels
  160. # This label site left of the Stat field
  161.     $objStatStrLabel = New-Object System.Windows.Forms.Label
  162.     $objStatStrLabel.Location = New-Object System.Drawing.Size(20,90)
  163.     $objStatStrLabel.Size = New-Object System.Drawing.Size(25,20)
  164.     $objStatStrLabel.Text = "Str"
  165.     $objForm.Controls.Add($objStatStrLabel)
  166.  
  167.     $objStatConLabel = New-Object System.Windows.Forms.Label
  168.     $objStatConLabel.Location = New-Object System.Drawing.Size(20,120)
  169.     $objStatConLabel.Size = New-Object System.Drawing.Size(25,20)
  170.     $objStatConLabel.Text = "Con"
  171.     $objForm.Controls.Add($objStatConLabel)
  172.    
  173.     $objStatIntLabel = New-Object System.Windows.Forms.Label
  174.     $objStatIntLabel.Location = New-Object System.Drawing.Size(20,150)
  175.     $objStatIntLabel.Size = New-Object System.Drawing.Size(25,20)
  176.     $objStatIntLabel.Text = "Int"
  177.     $objForm.Controls.Add($objStatIntLabel)
  178.  
  179.     $objStatWisLabel = New-Object System.Windows.Forms.Label
  180.     $objStatWisLabel.Location = New-Object System.Drawing.Size(20,180)
  181.     $objStatWisLabel.Size = New-Object System.Drawing.Size(25,20)
  182.     $objStatWisLabel.Text = "Wis"
  183.     $objForm.Controls.Add($objStatWisLabel)
  184.  
  185.     $objStatChaLabel = New-Object System.Windows.Forms.Label
  186.     $objStatChaLabel.Location = New-Object System.Drawing.Size(20,210)
  187.     $objStatChaLabel.Size = New-Object System.Drawing.Size(25,20)
  188.     $objStatChaLabel.Text = "Cha"
  189.     $objForm.Controls.Add($objStatChaLabel)
  190.    
  191.     $objStatDexLabel = New-Object System.Windows.Forms.Label
  192.     $objStatDexLabel.Location = New-Object System.Drawing.Size(20,240)
  193.     $objStatDexLabel.Size = New-Object System.Drawing.Size(25,20)
  194.     $objStatDexLabel.Text = "Dex"
  195.     $objForm.Controls.Add($objStatDexLabel)
  196.    
  197. # Stat Fields
  198. # This sites to the right of the Stat Label
  199.     $objStatStr = New-Object System.Windows.Forms.Listbox
  200.     $objStatStr.Location = New-Object System.Drawing.Size(50,90)
  201.     $objStatStr.Size = New-Object System.Drawing.Size(40,20)
  202.     $objForm.Controls.Add($objStatStr)
  203.  
  204.     $objStatCon = New-Object System.Windows.Forms.Listbox
  205.     $objStatCon.Location = New-Object System.Drawing.Size(50,120)
  206.     $objStatCon.Size = New-Object System.Drawing.Size(40,20)
  207.     $objForm.Controls.Add($objStatCon)
  208.  
  209.     $objStatInt = New-Object System.Windows.Forms.Listbox
  210.     $objStatInt.Location = New-Object System.Drawing.Size(50,150)
  211.     $objStatInt.Size = New-Object System.Drawing.Size(40,20)
  212.     $objForm.Controls.Add($objStatInt)
  213.  
  214.     $objStatWis = New-Object System.Windows.Forms.Listbox
  215.     $objStatWis.Location = New-Object System.Drawing.Size(50,180)
  216.     $objStatWis.Size = New-Object System.Drawing.Size(40,20)
  217.     $objForm.Controls.Add($objStatWis)
  218.    
  219.     $objStatCha = New-Object System.Windows.Forms.Listbox
  220.     $objStatCha.Location = New-Object System.Drawing.Size(50,210)
  221.     $objStatCha.Size = New-Object System.Drawing.Size(40,20)
  222.     $objForm.Controls.Add($objStatCha)
  223.    
  224.     $objStatDex = New-Object System.Windows.Forms.Listbox
  225.     $objStatDex.Location = New-Object System.Drawing.Size(50,240)
  226.     $objStatDex.Size = New-Object System.Drawing.Size(40,20)
  227.     $objForm.Controls.Add($objStatDex)
  228.  
  229. $objForm.Add_Shown({$objForm.Activate()})
  230. [void] $objForm.ShowDialog()
Advertisement
Add Comment
Please, Sign In to add comment