Murphy.DragonDice
1.1.0
Install-Package Murphy.DragonDice -Version 1.1.0
dotnet add package Murphy.DragonDice --version 1.1.0
<PackageReference Include="Murphy.DragonDice" Version="1.1.0" />
paket add Murphy.DragonDice --version 1.1.0
#r "nuget: Murphy.DragonDice, 1.1.0"
// Install Murphy.DragonDice as a Cake Addin
#addin nuget:?package=Murphy.DragonDice&version=1.1.0
// Install Murphy.DragonDice as a Cake Tool
#tool nuget:?package=Murphy.DragonDice&version=1.1.0
DragonDice is a small utility library that helps with the simulation and statistical evaluation of actions in the Dungeons & Dragons roleplaying game, specifically using the 5th edition of the rules as described in the Systems Reference Document.
In addition to the core library, a Telegram bot exposes the functionality for interactive use.
Installation
You can install the DragonDice library via NuGet or use the DragonDice Bot interactively.
To build DragonDice from source you will need an F# 4.5 compiler (or newer) and a .NET development environment. The .sln
and .fsproj
files in the source directories should be understood by .NET Core command line tools, MSBuild or IDEs such as VSCode, VisualStudio, or Rider.
Usage
Here's a brief example for using the DragonDice library:
#r "nuget: Murphy.DragonDice, 1.1.0"
open System
open Murphy.DragonDice
open Murphy.DragonDice.UnitSystem
let chr = Character(Name = "Joe Sixpack", Race = "Human")
chr.Abilities <- chr.Abilities.With [
Ability.Dexterity, 17
Ability.Constitution, 12
Ability.Intelligence, 20
Ability.Charisma, 16
]
chr.Proficiencies <- EnumMap [
Skill.Acrobatics, 1
Skill.SleightOfHand, 1
Skill.Arcana, 1
Skill.Perception, 1
]
chr.AddLevel(Profession.Fighter)
chr.AddLevel(Profession.Sorcerer, count = 4)
let chk = chr.GetCheck(Ability.Dexterity, Difficulty.Easy)
Check.estimate chk
|> printfn "estimate -> %A"
let rng = Random()
Check.simulate rng chk
|> printfn "simulate -> %A"
Product | Versions |
---|---|
.NET | net5.0 net5.0-windows net6.0 net6.0-android net6.0-ios net6.0-maccatalyst net6.0-macos net6.0-tvos net6.0-windows |
.NET Core | netcoreapp2.0 netcoreapp2.1 netcoreapp2.2 netcoreapp3.0 netcoreapp3.1 |
.NET Standard | netstandard2.0 netstandard2.1 |
.NET Framework | net461 net462 net463 net47 net471 net472 net48 |
MonoAndroid | monoandroid |
MonoMac | monomac |
MonoTouch | monotouch |
Tizen | tizen40 tizen60 |
Xamarin.iOS | xamarinios |
Xamarin.Mac | xamarinmac |
Xamarin.TVOS | xamarintvos |
Xamarin.WatchOS | xamarinwatchos |
-
.NETStandard 2.0
- FSharp.Core (>= 5.0.0)
- Newtonsoft.Json (>= 12.0.3)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.