Single Target Damage Tests

Single Target Damage Tests#

#r "nuget: Plotly.NET.Interactive"
#r "nuget: FSharp.Json"
// #r "nuget: Plotly.NET.ImageExport"

open Plotly.NET
// open Plotly.NET.ImageExport  

#load "../Helpers.fs"
#load "../Bestiary.fs"
#load "../Compare.fs"
#load "../DamageDistribution.fs"
#load "../Library.fs"
#load "../Transform.fs"
#load "../ChartTools.fs"

open PathfinderAnalysis.Library
open PathfinderAnalysis.Bestiary
open PathfinderAnalysis.Compare
open PathfinderAnalysis.Transform
open PathfinderAnalysis.Helpers
open PathfinderAnalysis.DamageDistribution
open PathfinderAnalysis.ChartTools
Installed Packages
  • FSharp.Json, 0.4.1
  • Plotly.NET.Interactive, 5.0.0
Loading extensions from `C:\Users\emmer\.nuget\packages\plotly.net.interactive\5.0.0\lib\netstandard2.1\Plotly.NET.Interactive.dll`
// cantrip tier - benchmark: 9.5
let creatureLevelBump = 2

let titleFn level = 
  sprintf "Middle Save - Level %i - Spout Cantrip vs. Martial Bow Against Level %i Creatures" level (level+creatureLevelBump)

[|
  {
    AveragesByRollsByLevel = transformedResultsByRollByLevel martialAbpArbalest PlayerAttack creatureAc (highMartialAttack true) bestiaryByLevel creatureLevelBump
      |> Seq.map resultRollsToAverages
      |> Seq.toArray;
    Title = "ðŸĪš Arbalest (1 shot) ❖"
  };
  {
    AveragesByRollsByLevel = mapMerge (highMartialAttack true) creatureLevelBump 5 martialAbpArbalest;
    Title = "ðŸĪš Arbalest (2 shots) ❖❖❖"
  };
  {
    AveragesByRollsByLevel = mapMerge (highMartialAttack true) creatureLevelBump 5 martialAbpShortbow;
    Title = "ðŸĪš Shortbow (2 shots) ❖❖"
  };
  { 
    AveragesByRollsByLevel = transformedResultsByRollByLevel telekineticProjectile PlayerAttack creatureAc (casterAttack true false) bestiaryByLevel creatureLevelBump
      |> Seq.map resultRollsToAverages
      |> Seq.toArray;
    Title = "ðŸĐļ Telekinetic Projectile ❖❖"
  };
  standardSpellChart "ðŸŒŋ Spout (Middle) ❖❖" spout SaveSelector.Middle creatureLevelBump;
  standardSpellChart "ðŸŒŋ Spout (Lowest) ❖❖" spout SaveSelector.Lowest creatureLevelBump;
  standardSpellChart "ðŸŒŋ Spout (Highest) ❖❖" spout SaveSelector.Highest creatureLevelBump;
  standardSpellChart "ðŸŒŋ Spout (Reflex) ❖❖" spout SaveSelector.Reflex creatureLevelBump;
  // { 
  //   AveragesByRollsByLevel = transformedResultsByRollByLevel tempestSurge CreatureSave highestSave (casterDc true) bestiaryByLevel creatureLevelBump
  //     |> Seq.map resultRollsToAverages
  //     |> Seq.map normalizeSavingThrowsForLevel
  //     |> Seq.toArray;
  //   Title = "ðŸŒŋ Tempest Surge (Highest) ❖❖"
  // };
|]
|> flatten
// |> generateCharts titleFn
|> generateLevelScaleChart (sprintf "Caster and Martial Backup Options (no Property Runes) - Creatures PL+%i" creatureLevelBump)
// |> Seq.iteri (fun i chart -> Chart.savePNG (path = (sprintf "spout-arbalest-%02i" i)) chart)
// |> ignore
// focus spell tier - benchmark: 21
let creatureLevelBump = 2

let titleFn level = 
  sprintf "Level %i - Focus Spells and Favored Ranged Weapons Against Level %i Creatures" level (level+creatureLevelBump)

[|
  fighterLongbowDoubleShotChart creatureLevelBump;
  fighterLongbow2StrikesChart creatureLevelBump;
  sorcererDragonBreath1MiddleTargetChart creatureLevelBump;
  clericFireRayMovesChart creatureLevelBump;
  clericFireRayStaysChart creatureLevelBump;
  druidTempestSurgeChart SaveSelector.Middle creatureLevelBump;
  druidTempestSurgeChart SaveSelector.Lowest creatureLevelBump;
  druidTempestSurgeChart SaveSelector.Highest creatureLevelBump;
  druidTempestSurgeChart SaveSelector.Reflex creatureLevelBump;
  // fighterLongbowIncredibleAimChart creatureLevelBump;
  // fighterLongbow3StrikesChart creatureLevelBump;
  // fighterLongbowTripleShotChart creatureLevelBump;
  // fighterLongbowDoubleShotThenStrikeChart creatureLevelBump;
  // fighterLongbowStrikeThenDoubleShotChart creatureLevelBump;
  // fighterLongbowIncredibleAimThenStrikeChart creatureLevelBump;
  // fighterLongbowMultiShotStanceTripleShotChart creatureLevelBump;
  // highestRankForceBarrage2ActionChart creatureLevelBump;
  // highestRankForceBarrage3ActionChart creatureLevelBump;
|]
|> flatten
// |> generateCharts titleFn 
|> generateLevelScaleChart (sprintf "Focus Spells and Favored Ranged Weapons - Creatures PL+%i" creatureLevelBump)
// slotted spell tier - benchmark: 30
let creatureLevelBump = 2

let titleFn level = 
  sprintf "Level %i - Caster Single-Target Ranged Spells and Martial Melee Weapons - Level %i Creatures" level (level+creatureLevelBump)

[|
  barbarianGreatsword2StrikesChart creatureLevelBump;
  fighterGreatsword2StrikesChart creatureLevelBump;
  fighterDoubleSliceChart creatureLevelBump;
  // highestRankForceBarrage2ActionChart creatureLevelBump;
  highestRankForceBarrage3ActionChart creatureLevelBump;
  druidThunderstrikeChart SaveSelector.Middle creatureLevelBump;
  druidThunderstrikeChart SaveSelector.Lowest creatureLevelBump;
  druidThunderstrikeChart SaveSelector.Highest creatureLevelBump;
  druidThunderstrikeChart SaveSelector.Reflex creatureLevelBump;
  clericFireRayStaysChart creatureLevelBump;
|]
|> flatten
// |> generateCharts titleFn
|> generateLevelScaleChart (sprintf "Caster Single-Target Ranged Spells and Martial Melee Weapons - Creatures PL+%i" creatureLevelBump)
// damage mapped to d20
open PathfinderAnalysis.DamageDistribution

let dicePool = [D12, 4; D6, 3; D4, 2]
let nBuckets = 20

let values = 
  rollDistributions 0 dicePool
  |> Seq.toList
  |> chunkRolls nBuckets
  |> chunksToAverages
  |> Seq.toList

let title = sprintf "Roll Sum of %A mapped onto a d%i" dicePool nBuckets

Chart.Line(
  x = List.map first values,
  y = List.map second values,
  ShowMarkers = true,
  MultiText = (List.map second values |> List.map (sprintf "%.0f")),
  TextPosition = StyleParam.TextPosition.TopCenter
)
|> Chart.withXAxisStyle(TitleText = "D20 Result")
|> Chart.withYAxisStyle(TitleText = "Estimated Roll Sum")
|> Chart.withTitle(title)

// turn luck mapped to d20
open PathfinderAnalysis.ChartTools

open PathfinderAnalysis.DamageDistribution

let creatureLevelBump = 2

let titleFn level =
  sprintf "Level %i - Druid vs. Fighter Against Level %i Creatures (AC: %.1f DC: %.1f)" level (level + creatureLevelBump) (average creatureAc level) (average middleSave level + 10.0)

let fighterLongbowBucketsForLevel pcLevel =
  [|
    { HitRollCount = 1; HitModifier = highFighterAttack true pcLevel; Contest = PlayerAttack; CreatureDefenseFunction = creatureAc; DamageFunction = diceFighterLongbow pcLevel };
    { HitRollCount = 1; HitModifier = highFighterAttack true pcLevel - 5; Contest = PlayerAttack; CreatureDefenseFunction = creatureAc; DamageFunction = diceFighterLongbow pcLevel };
  |]
  |> bigThingStandardChunk bestiaryByLevel[pcLevel + creatureLevelBump]

// let fighterShortbowBucketsForLevel pcLevel =
//   [|
//     { HitRollCount = 1; HitModifier = highFighterAttack true pcLevel; Contest = PlayerAttack; CreatureDefenseFunction = creatureAc; DamageFunction = diceFighterShortbow pcLevel };
//     { HitRollCount = 1; HitModifier = highFighterAttack true pcLevel - 5; Contest = PlayerAttack; CreatureDefenseFunction = creatureAc; DamageFunction = diceFighterShortbow pcLevel };
//   |]
//   |> bigThingStandardChunk bestiaryByLevel[pcLevel + creatureLevelBump]

let druidReflexBuckets pcLevel =
  [|
    { HitRollCount = 1; HitModifier = casterDc true pcLevel; Contest = CreatureSave; CreatureDefenseFunction = (fun c -> c.reflex + c.hasMagicBonus); DamageFunction = diceDamageTempestSurge pcLevel };
  |]
  |> bigThingStandardChunk bestiaryByLevel[pcLevel + creatureLevelBump]

let druidMiddleBuckets pcLevel =
  [|
    { HitRollCount = 1; HitModifier = casterDc true pcLevel; Contest = CreatureSave; CreatureDefenseFunction = middleSave; DamageFunction = diceDamageTempestSurge pcLevel };
  |]
  |> bigThingStandardChunk bestiaryByLevel[pcLevel + creatureLevelBump]

let druidMiddleThunderstrikeBuckets pcLevel =
  [|
    { HitRollCount = 1; HitModifier = casterDc true pcLevel; Contest = CreatureSave; CreatureDefenseFunction = middleSave; DamageFunction = diceDamageThunderstrike pcLevel };
  |]
  |> bigThingStandardChunk bestiaryByLevel[pcLevel + creatureLevelBump]

let sorcererMiddleThunderstrikeBuckets pcLevel =
  [|
    { HitRollCount = 1; HitModifier = casterDc true pcLevel; Contest = CreatureSave; CreatureDefenseFunction = middleSave; DamageFunction = diceSorcererThunderstrike pcLevel };
  |]
  |> bigThingStandardChunk bestiaryByLevel[pcLevel + creatureLevelBump]

let fighterGreatswordBucketsForLevel pcLevel =
  [|
    { HitRollCount = 1; HitModifier = highFighterAttack true pcLevel; Contest = PlayerAttack; CreatureDefenseFunction = creatureAc; DamageFunction = diceFighterGreatsword pcLevel };
    { HitRollCount = 1; HitModifier = highFighterAttack true pcLevel - 5; Contest = PlayerAttack; CreatureDefenseFunction = creatureAc; DamageFunction = diceFighterGreatsword pcLevel };
  |]
  |> bigThingStandardChunk bestiaryByLevel[pcLevel + creatureLevelBump]

let fighterLongswordBucketsForLevel pcLevel =
  [|
    { HitRollCount = 1; HitModifier = highFighterAttack true pcLevel; Contest = PlayerAttack; CreatureDefenseFunction = creatureAc; DamageFunction = diceFighterLongsword pcLevel };
    { HitRollCount = 1; HitModifier = highFighterAttack true pcLevel - 5; Contest = PlayerAttack; CreatureDefenseFunction = creatureAc; DamageFunction = diceFighterLongsword pcLevel };
  |]
  |> bigThingStandardChunk bestiaryByLevel[pcLevel + creatureLevelBump]

let barbarianGreatswordBucketsForLevel pcLevel =
  [|
    { HitRollCount = 1; HitModifier = highMartialAttack true pcLevel; Contest = PlayerAttack; CreatureDefenseFunction = creatureAc; DamageFunction = diceBarbarianGreatsword pcLevel };
    { HitRollCount = 1; HitModifier = highMartialAttack true pcLevel - 5; Contest = PlayerAttack; CreatureDefenseFunction = creatureAc; DamageFunction = diceBarbarianGreatsword pcLevel };
  |]
  |> bigThingStandardChunk bestiaryByLevel[pcLevel + creatureLevelBump]

let fighterDoubleSliceBucketsForLevel pcLevel =
  [|
    { HitRollCount = 1; HitModifier = highFighterAttack true pcLevel; Contest = PlayerAttack; CreatureDefenseFunction = creatureAc; DamageFunction = diceFighterLongsword pcLevel };
    { HitRollCount = 1; HitModifier = highFighterAttack true pcLevel; Contest = PlayerAttack; CreatureDefenseFunction = creatureAc; DamageFunction = diceFighterShortsword pcLevel };
  |]
  |> bigThingStandardChunk bestiaryByLevel[pcLevel + creatureLevelBump]

// [1;5;7;13;15]
[13;15]
|> List.map (fun level -> [
  // "Tempest Surge (Reflex)", level, druidReflexBuckets level;
  // "Longbow (2 Strikes)", level, fighterLongbowBucketsForLevel level;
  // "Tempest Surge (Middle)", level, druidMiddleBuckets level;
  // "Shortbow (2 Strikes)", level, fighterShortbowBucketsForLevel level
  // "⚔ïļ Longsword (2 Strikes) ❖❖", level, fighterLongswordBucketsForLevel level;
  // "⚔ïļ Greatsword (2 Strikes) ❖❖", level, fighterGreatswordBucketsForLevel level;
  "🐉 Greatsword (2 Strikes) ❖❖", level, barbarianGreatswordBucketsForLevel level;
  // "ðŸŒŋ Thunderstrike (Middle) ❖❖", level, druidMiddleThunderstrikeBuckets level;
  "ðŸĐļ Thunderstrike (Middle) ❖❖", level, sorcererMiddleThunderstrikeBuckets level;
  "⚔ïļ Double Slice (Swords) ❖❖", level, fighterDoubleSliceBucketsForLevel level;
])
|> Seq.collect (fun titledBucketsByLevel -> Seq.map (fun (title, level, bucket) -> chunksToFlatChartData title level bucket) titledBucketsByLevel)
// |> generateChartsPercent titleFn creatureLevelBump
|> generateChartsTTK titleFn creatureLevelBump
// |> generateTTKHistogram titleFn creatureLevelBump
// |> generateLevelScaleChart (sprintf "Reflex Save - Druid vs. Fighter Creatures PL+%i" creatureLevelBump)
[ MultiChart ([Plotly.NET.Trace2D; Plotly.NET.Trace2D; Plotly.NET.Trace2D], Plotly.NET.Layout, Plotly.NET.Config, Plotly.NET.DisplayOptions), MultiChart ([Plotly.NET.Trace2D; Plotly.NET.Trace2D; Plotly.NET.Trace2D], Plotly.NET.Layout, Plotly.NET.Config, Plotly.NET.DisplayOptions) ]
f
Microsoft.FSharp.Collections.SeqModule+revamp@729[System.Tuple`2[System.Int32,System.Collections.Generic.IEnumerable`1[FSI_0010.PathfinderAnalysis.Transform+FlatChartData]],Plotly.NET.GenericChart]
f
Microsoft.FSharp.Collections.SeqModule+Map@749-1[System.Tuple`2[System.Int32,System.Collections.Generic.IEnumerable`1[FSI_0010.PathfinderAnalysis.Transform+FlatChartData]],Plotly.NET.GenericChart]
mapping
FSI_0011.PathfinderAnalysis.ChartTools+generateChartsTTK@90
titleFn
FSI_0017+it@93-20
creatureLevelBump
2
ie
[ (13, Microsoft.FSharp.Collections.IEnumerator+mkSeq@177[FSI_0010.PathfinderAnalysis.Transform+FlatChartData]), (15, Microsoft.FSharp.Collections.IEnumerator+mkSeq@177[FSI_0010.PathfinderAnalysis.Transform+FlatChartData]) ]
f
Microsoft.FSharp.Collections.SeqModule+mkDelayedSeq@597[System.Tuple`2[System.Int32,System.Collections.Generic.IEnumerable`1[FSI_0010.PathfinderAnalysis.Transform+FlatChartData]]]
f
Microsoft.FSharp.Collections.SeqModule+GroupBy@1348[FSI_0010.PathfinderAnalysis.Transform+FlatChartData,System.Int32]
projection
FSI_0011.PathfinderAnalysis.ChartTools+generateChartsTTK@89-5
source
[ { Title = "🐉 Greatsword (2 Strikes) ❖❖" Level = 13 AveragesByRoll = seq [{ Roll = 1 Average = 0.3424231631 }; { Roll = 2 Average = 0.7749431371 }; { Roll = 3 Average = 1.070900483 }; { Roll = 4 Average = 1.356270639 }; ...] }, { Title = "🩸 Thunderstrike (Middle) ❖❖" Level = 13 AveragesByRoll = seq [{ Roll = 1 Average = 0.0 }; { Roll = 2 Average = 0.6140333771 }; { Roll = 3 Average = 1.79696296 }; { Roll = 4 Average = 2.501283992 }; ...] }, { Title = "⚔ïļ Double Slice (Swords) ❖❖" Level = 13 AveragesByRoll = seq [{ Roll = 1 Average = 0.7266919648 }; { Roll = 2 Average = 1.943302205 }; { Roll = 3 Average = 9.126532677 }; { Roll = 4 Average = 20.07902522 }; ...] }, { Title = "🐉 Greatsword (2 Strikes) ❖❖" Level = 15 AveragesByRoll = seq [{ Roll = 1 Average = 0.0 }; { Roll = 2 Average = 0.0 }; { Roll = 3 Average = 0.0 }; { Roll = 4 Average = 0.0 }; ...] }, { Title = "🩸 Thunderstrike (Middle) ❖❖" Level = 15 AveragesByRoll = seq [{ Roll = 1 Average = 0.0 }; { Roll = 2 Average = 1.081080307 }; { Roll = 3 Average = 3.243078742 }; { Roll = 4 Average = 7.567732634 }; ...] }, { Title = "⚔ïļ Double Slice (Swords) ❖❖" Level = 15 AveragesByRoll = seq [{ Roll = 1 Average = 0.0 }; { Roll = 2 Average = 0.1467394478 }; { Roll = 3 Average = 2.533184706 }; { Roll = 4 Average = 10.92827381 }; ...] } ]
fMicrosoft.FSharp.Core.CompilerServices.RuntimeHelpers+mkConcatSeq@354[System.Collections.Generic.IEnumerable`1[FSI_0010.PathfinderAnalysis.Transform+FlatChartData],FSI_0010.PathfinderAnalysis.Transform+FlatChartData]
(values)
indexvalue
0{ Title = "🐉 Greatsword (2 Strikes) ❖❖" Level = 13 AveragesByRoll = seq [{ Roll = 1 Average = 0.3424231631 }; { Roll = 2 Average = 0.7749431371 }; { Roll = 3 Average = 1.070900483 }; { Roll = 4 Average = 1.356270639 }; ...] }
1{ Title = "ðŸĐļ Thunderstrike (Middle) ❖❖" Level = 13 AveragesByRoll = seq [{ Roll = 1 Average = 0.0 }; { Roll = 2 Average = 0.6140333771 }; { Roll = 3 Average = 1.79696296 }; { Roll = 4 Average = 2.501283992 }; ...] }
2{ Title = "⚔ïļ Double Slice (Swords) ❖❖" Level = 13 AveragesByRoll = seq [{ Roll = 1 Average = 0.7266919648 }; { Roll = 2 Average = 1.943302205 }; { Roll = 3 Average = 9.126532677 }; { Roll = 4 Average = 20.07902522 }; ...] }
3{ Title = "🐉 Greatsword (2 Strikes) ❖❖" Level = 15 AveragesByRoll = seq [{ Roll = 1 Average = 0.0 }; { Roll = 2 Average = 0.0 }; { Roll = 3 Average = 0.0 }; { Roll = 4 Average = 0.0 }; ...] }
4{ Title = "ðŸĐļ Thunderstrike (Middle) ❖❖" Level = 15 AveragesByRoll = seq [{ Roll = 1 Average = 0.0 }; { Roll = 2 Average = 1.081080307 }; { Roll = 3 Average = 3.243078742 }; { Roll = 4 Average = 7.567732634 }; ...] }
5{ Title = "⚔ïļ Double Slice (Swords) ❖❖" Level = 15 AveragesByRoll = seq [{ Roll = 1 Average = 0.0 }; { Roll = 2 Average = 0.1467394478 }; { Roll = 3 Average = 2.533184706 }; { Roll = 4 Average = 10.92827381 }; ...] }
(values)
indexvalue
0
(13, Microsoft.FSharp.Collections.IEnumerator+mkSeq@177[FSI_0010.PathfinderAnalysis.Transform+FlatChartData])
Item1
13
Item2
[ { Title = "🐉 Greatsword (2 Strikes) ❖❖" Level = 13 AveragesByRoll = seq [{ Roll = 1 Average = 0.3424231631 }; { Roll = 2 Average = 0.7749431371 }; { Roll = 3 Average = 1.070900483 }; { Roll = 4 Average = 1.356270639 }; ...] }, { Title = "🩸 Thunderstrike (Middle) ❖❖" Level = 13 AveragesByRoll = seq [{ Roll = 1 Average = 0.0 }; { Roll = 2 Average = 0.6140333771 }; { Roll = 3 Average = 1.79696296 }; { Roll = 4 Average = 2.501283992 }; ...] }, { Title = "⚔ïļ Double Slice (Swords) ❖❖" Level = 13 AveragesByRoll = seq [{ Roll = 1 Average = 0.7266919648 }; { Roll = 2 Average = 1.943302205 }; { Roll = 3 Average = 9.126532677 }; { Roll = 4 Average = 20.07902522 }; ...] } ]
f
Microsoft.FSharp.Collections.SeqModule+ReadOnly@1295[FSI_0010.PathfinderAnalysis.Transform+FlatChartData]
source[ { Title = "🐉 Greatsword (2 Strikes) ❖❖" Level = 13 AveragesByRoll = seq [{ Roll = 1 Average = 0.3424231631 }; { Roll = 2 Average = 0.7749431371 }; { Roll = 3 Average = 1.070900483 }; { Roll = 4 Average = 1.356270639 }; ...] }, { Title = "ðŸĐļ Thunderstrike (Middle) ❖❖" Level = 13 AveragesByRoll = seq [{ Roll = 1 Average = 0.0 }; { Roll = 2 Average = 0.6140333771 }; { Roll = 3 Average = 1.79696296 }; { Roll = 4 Average = 2.501283992 }; ...] }, { Title = "⚔ïļ Double Slice (Swords) ❖❖" Level = 13 AveragesByRoll = seq [{ Roll = 1 Average = 0.7266919648 }; { Roll = 2 Average = 1.943302205 }; { Roll = 3 Average = 9.126532677 }; { Roll = 4 Average = 20.07902522 }; ...] } ]
(values)
indexvalue
0
{ Title = "🐉 Greatsword (2 Strikes) ❖❖"\n Level = 13\n AveragesByRoll =\n seq\n [{ Roll = 1\n Average = 0.3424231631 }; { Roll = 2\n Average = 0.7749431371 };\n { Roll = 3\n Average = 1.070900483 }; { Roll = 4\n ...
Title🐉 Greatsword (2 Strikes) ❖❖
Level13
AveragesByRoll[ { Roll = 1 Average = 0.3424231631 }, { Roll = 2 Average = 0.7749431371 }, { Roll = 3 Average = 1.070900483 }, { Roll = 4 Average = 1.356270639 }, { Roll = 5 Average = 1.770802219 }, { Roll = 6 Average = 6.461143386 }, { Roll = 7 Average = 14.49499169 }, { Roll = 8 Average = 25.55532554 }, { Roll = 9 Average = 33.95758804 }, { Roll = 10 Average = 37.39262857 }, { Roll = 11 Average = 40.05087986 }, { Roll = 12 Average = 42.48290214 }, { Roll = 13 Average = 44.91590133 }, { Roll = 14 Average = 47.58075877 }, { Roll = 15 Average = 50.90708326 }, { Roll = 16 Average = 56.47916758 }, { Roll = 17 Average = 69.00803298 }, { Roll = 18 Average = 80.82094661 }, { Roll = 19 Average = 91.49100785 }, { Roll = 20 Average = 122.18718 } ... (more) ]
1
{ Title = "🩸 Thunderstrike (Middle) ❖❖"\n Level = 13\n AveragesByRoll =\n seq\n [{ Roll = 1\n Average = 0.0 }; { Roll = 2\n Average = 0.6140333771 }; { Roll = 3\n Average = 1.79696296 };\n { Roll = 4...
TitleðŸĐļ Thunderstrike (Middle) ❖❖
Level13
AveragesByRoll[ { Roll = 1 Average = 0.0 }, { Roll = 2 Average = 0.6140333771 }, { Roll = 3 Average = 1.79696296 }, { Roll = 4 Average = 2.501283992 }, { Roll = 5 Average = 8.595111844 }, { Roll = 6 Average = 19.36665329 }, { Roll = 7 Average = 26.25832803 }, { Roll = 8 Average = 29.80978061 }, { Roll = 9 Average = 31.96634806 }, { Roll = 10 Average = 33.76153747 }, { Roll = 11 Average = 35.42011764 }, { Roll = 12 Average = 37.12780501 }, { Roll = 13 Average = 38.99580275 }, { Roll = 14 Average = 41.36619333 }, { Roll = 15 Average = 45.20040631 }, { Roll = 16 Average = 52.53736226 }, { Roll = 17 Average = 60.51970968 }, { Roll = 18 Average = 67.7508145 }, { Roll = 19 Average = 77.93221897 }, { Roll = 20 Average = 140.0584773 } ... (more) ]
2
{ Title = "⚔ïļ Double Slice (Swords) ❖❖"\n Level = 13\n AveragesByRoll =\n seq\n [{ Roll = 1\n Average = 0.7266919648 }; { Roll = 2\n Average = 1.943302205 };\n { Roll = 3\n Average = 9.126532677 }; { Roll = 4\n ...
Title⚔ïļ Double Slice (Swords) ❖❖
Level13
AveragesByRoll[ { Roll = 1 Average = 0.7266919648 }, { Roll = 2 Average = 1.943302205 }, { Roll = 3 Average = 9.126532677 }, { Roll = 4 Average = 20.07902522 }, { Roll = 5 Average = 24.49911636 }, { Roll = 6 Average = 26.89940047 }, { Roll = 7 Average = 28.98747494 }, { Roll = 8 Average = 31.10551865 }, { Roll = 9 Average = 33.52325902 }, { Roll = 10 Average = 36.61627391 }, { Roll = 11 Average = 40.91149741 }, { Roll = 12 Average = 45.98354789 }, { Roll = 13 Average = 50.26205492 }, { Roll = 14 Average = 53.66403679 }, { Roll = 15 Average = 56.8157747 }, { Roll = 16 Average = 60.11853032 }, { Roll = 17 Average = 64.1582146 }, { Roll = 18 Average = 70.06429789 }, { Roll = 19 Average = 78.8810387 }, { Roll = 20 Average = 94.82739383 } ... (more) ]
1
(15, Microsoft.FSharp.Collections.IEnumerator+mkSeq@177[FSI_0010.PathfinderAnalysis.Transform+FlatChartData])
Item1
15
Item2
[ { Title = "🐉 Greatsword (2 Strikes) ❖❖" Level = 15 AveragesByRoll = seq [{ Roll = 1 Average = 0.0 }; { Roll = 2 Average = 0.0 }; { Roll = 3 Average = 0.0 }; { Roll = 4 Average = 0.0 }; ...] }, { Title = "🩸 Thunderstrike (Middle) ❖❖" Level = 15 AveragesByRoll = seq [{ Roll = 1 Average = 0.0 }; { Roll = 2 Average = 1.081080307 }; { Roll = 3 Average = 3.243078742 }; { Roll = 4 Average = 7.567732634 }; ...] }, { Title = "⚔ïļ Double Slice (Swords) ❖❖" Level = 15 AveragesByRoll = seq [{ Roll = 1 Average = 0.0 }; { Roll = 2 Average = 0.1467394478 }; { Roll = 3 Average = 2.533184706 }; { Roll = 4 Average = 10.92827381 }; ...] } ]
f
Microsoft.FSharp.Collections.SeqModule+ReadOnly@1295[FSI_0010.PathfinderAnalysis.Transform+FlatChartData]
source[ { Title = "🐉 Greatsword (2 Strikes) ❖❖" Level = 15 AveragesByRoll = seq [{ Roll = 1 Average = 0.0 }; { Roll = 2 Average = 0.0 }; { Roll = 3 Average = 0.0 }; { Roll = 4 Average = 0.0 }; ...] }, { Title = "ðŸĐļ Thunderstrike (Middle) ❖❖" Level = 15 AveragesByRoll = seq [{ Roll = 1 Average = 0.0 }; { Roll = 2 Average = 1.081080307 }; { Roll = 3 Average = 3.243078742 }; { Roll = 4 Average = 7.567732634 }; ...] }, { Title = "⚔ïļ Double Slice (Swords) ❖❖" Level = 15 AveragesByRoll = seq [{ Roll = 1 Average = 0.0 }; { Roll = 2 Average = 0.1467394478 }; { Roll = 3 Average = 2.533184706 }; { Roll = 4 Average = 10.92827381 }; ...] } ]
(values)
indexvalue
0
{ Title = "🐉 Greatsword (2 Strikes) ❖❖"\n Level = 15\n AveragesByRoll =\n seq\n [{ Roll = 1\n Average = 0.0 }; { Roll = 2\n Average = 0.0 }; { Roll = 3\n Average = 0.0 }; { Roll = 4\n ...
Title🐉 Greatsword (2 Strikes) ❖❖
Level15
AveragesByRoll[ { Roll = 1 Average = 0.0 }, { Roll = 2 Average = 0.0 }, { Roll = 3 Average = 0.0 }, { Roll = 4 Average = 0.0 }, { Roll = 5 Average = 0.0 }, { Roll = 6 Average = 1.099811856 }, { Roll = 7 Average = 4.812381067 }, { Roll = 8 Average = 12.75818553 }, { Roll = 9 Average = 25.29150874 }, { Roll = 10 Average = 41.42747526 }, { Roll = 11 Average = 45.9307943 }, { Roll = 12 Average = 49.05810544 }, { Roll = 13 Average = 51.78622467 }, { Roll = 14 Average = 54.40875138 }, { Roll = 15 Average = 57.30302372 }, { Roll = 16 Average = 61.0834572 }, { Roll = 17 Average = 71.6835395 }, { Roll = 18 Average = 95.3834919 }, { Roll = 19 Average = 109.1946359 }, { Roll = 20 Average = 147.3056406 } ... (more) ]
1
{ Title = "🩸 Thunderstrike (Middle) ❖❖"\n Level = 15\n AveragesByRoll =\n seq\n [{ Roll = 1\n Average = 0.0 }; { Roll = 2\n Average = 1.081080307 }; { Roll = 3\n Average = 3.243078742 };\n { Roll = 4\...
TitleðŸĐļ Thunderstrike (Middle) ❖❖
Level15
AveragesByRoll[ { Roll = 1 Average = 0.0 }, { Roll = 2 Average = 1.081080307 }, { Roll = 3 Average = 3.243078742 }, { Roll = 4 Average = 7.567732634 }, { Roll = 5 Average = 25.19646537 }, { Roll = 6 Average = 30.34620429 }, { Roll = 7 Average = 33.71445654 }, { Roll = 8 Average = 36.21116645 }, { Roll = 9 Average = 38.26507935 }, { Roll = 10 Average = 40.14072578 }, { Roll = 11 Average = 41.97110851 }, { Roll = 12 Average = 44.00042082 }, { Roll = 13 Average = 46.51644097 }, { Roll = 14 Average = 50.83782716 }, { Roll = 15 Average = 60.81670908 }, { Roll = 16 Average = 69.0744709 }, { Roll = 17 Average = 75.11135435 }, { Roll = 18 Average = 81.32531012 }, { Roll = 19 Average = 91.28944173 }, { Roll = 20 Average = 160.0476836 } ... (more) ]
2
{ Title = "⚔ïļ Double Slice (Swords) ❖❖"\n Level = 15\n AveragesByRoll =\n seq\n [{ Roll = 1\n Average = 0.0 }; { Roll = 2\n Average = 0.1467394478 }; { Roll = 3\n Average = 2.533184706 };\n { Roll = 4...
Title⚔ïļ Double Slice (Swords) ❖❖
Level15
AveragesByRoll[ { Roll = 1 Average = 0.0 }, { Roll = 2 Average = 0.1467394478 }, { Roll = 3 Average = 2.533184706 }, { Roll = 4 Average = 10.92827381 }, { Roll = 5 Average = 23.86090191 }, { Roll = 6 Average = 27.60691077 }, { Roll = 7 Average = 29.78883097 }, { Roll = 8 Average = 31.63799364 }, { Roll = 9 Average = 33.46996114 }, { Roll = 10 Average = 35.4399609 }, { Roll = 11 Average = 37.83285772 }, { Roll = 12 Average = 41.2143168 }, { Roll = 13 Average = 46.85082533 }, { Roll = 14 Average = 54.30322417 }, { Roll = 15 Average = 59.31689227 }, { Roll = 16 Average = 63.03272232 }, { Roll = 17 Average = 66.61331157 }, { Roll = 18 Average = 70.94980326 }, { Roll = 19 Average = 78.68783231 }, { Roll = 20 Average = 99.62329479 } ... (more) ]
(values)
indexvalue
0
1
// bigthing histogram

open PathfinderAnalysis.ChartTools

let creatureLevelBump = 2

let titleFn level =
  sprintf "Level %i - Turn Damage vs. Level %i Creatures (AC: %.1f DC: %.1f)" level (level + creatureLevelBump) (average creatureAc level) (average middleSave level + 10.0)

let fighterDoubleSliceAll pcLevel =
  [|
    { HitRollCount = 1; HitModifier = highFighterAttack true pcLevel; Contest = PlayerAttack; CreatureDefenseFunction = creatureAc; DamageFunction = diceFighterLongsword pcLevel };
    { HitRollCount = 1; HitModifier = highFighterAttack true pcLevel; Contest = PlayerAttack; CreatureDefenseFunction = creatureAc; DamageFunction = diceFighterShortsword pcLevel };
  |]
  |> theBigThing bestiaryByLevel[pcLevel + creatureLevelBump]

let sorcererMiddleThunderstrikeAll pcLevel =
  [|
    { HitRollCount = 1; HitModifier = casterDc true pcLevel; Contest = CreatureSave; CreatureDefenseFunction = middleSave; DamageFunction = diceSorcererThunderstrike pcLevel };
  |]
  |> theBigThing bestiaryByLevel[pcLevel + creatureLevelBump]

let barbarianGreatswordTwiceAll pcLevel =
  [|
    { HitRollCount = 1; HitModifier = highMartialAttack true pcLevel; Contest = PlayerAttack; CreatureDefenseFunction = creatureAc; DamageFunction = diceBarbarianGreatsword pcLevel };
    { HitRollCount = 1; HitModifier = highMartialAttack true pcLevel - 5; Contest = PlayerAttack; CreatureDefenseFunction = creatureAc; DamageFunction = diceBarbarianGreatsword pcLevel };
  |]
  |> theBigThing bestiaryByLevel[pcLevel + creatureLevelBump]

let wizardForceBarrageAll actions pcLevel =
  [|
    { HitRollCount = 1; HitModifier = casterAttack true false pcLevel; Contest = PlayerAttack; CreatureDefenseFunction = creatureAc; DamageFunction = diceDamageForceBarrage actions pcLevel  }
  |]
  |> theBigThing bestiaryByLevel[pcLevel + creatureLevelBump]
[9]
|> Seq.map (fun level -> [
  "ðŸĐļ Thunderstrike (Middle) ❖❖", level, sorcererMiddleThunderstrikeAll level;
  "⚔ïļ Double Slice (Swords) ❖❖", level, fighterDoubleSliceAll level;
  "🐉 Greatsword (2 Strikes) ❖❖", level, barbarianGreatswordTwiceAll level;
  "🧙 Force Barrage ❖❖", level, wizardForceBarrageAll 2 level;
  "🧙 Force Barrage ❖❖❖", level, wizardForceBarrageAll 3 level;
])
|> generateShape titleFn
  
[ MultiChart ([Plotly.NET.Trace2D; Plotly.NET.Trace2D; Plotly.NET.Trace2D; Plotly.NET.Trace2D; Plotly.NET.Trace2D], Plotly.NET.Layout, Plotly.NET.Config, Plotly.NET.DisplayOptions) ]
f
Microsoft.FSharp.Collections.SeqModule+revamp@729[Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`3[System.String,System.Int32,System.Collections.Generic.IEnumerable`1[FSI_0008.PathfinderAnalysis.DamageDistribution+DamageCount]]],Plotly.NET.GenericChart]
f
Microsoft.FSharp.Collections.SeqModule+Map@749-1[Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`3[System.String,System.Int32,System.Collections.Generic.IEnumerable`1[FSI_0008.PathfinderAnalysis.DamageDistribution+DamageCount]]],Plotly.NET.GenericChart]
mapping
FSI_0011.PathfinderAnalysis.ChartTools+generateShape@161
titleFn
FSI_0018+it@43-24
ie
[ [ (🩸 Thunderstrike (Middle) ❖❖, 9, Microsoft.FSharp.Collections.IEnumerator+mkSeq@177[FSI_0008.PathfinderAnalysis.DamageDistribution+DamageCount]), (⚔ïļ Double Slice (Swords) ❖❖, 9, Microsoft.FSharp.Collections.IEnumerator+mkSeq@177[FSI_0008.PathfinderAnalysis.DamageDistribution+DamageCount]), (🐉 Greatsword (2 Strikes) ❖❖, 9, Microsoft.FSharp.Collections.IEnumerator+mkSeq@177[FSI_0008.PathfinderAnalysis.DamageDistribution+DamageCount]), (🧙 Force Barrage ❖❖, 9, Microsoft.FSharp.Collections.IEnumerator+mkSeq@177[FSI_0008.PathfinderAnalysis.DamageDistribution+DamageCount]), (🧙 Force Barrage ❖❖❖, 9, Microsoft.FSharp.Collections.IEnumerator+mkSeq@177[FSI_0008.PathfinderAnalysis.DamageDistribution+DamageCount]) ] ]
f
Microsoft.FSharp.Collections.SeqModule+revamp@729[System.Int32,Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`3[System.String,System.Int32,System.Collections.Generic.IEnumerable`1[FSI_0008.PathfinderAnalysis.DamageDistribution+DamageCount]]]]
f
Microsoft.FSharp.Collections.SeqModule+Map@749-1[System.Int32,Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`3[System.String,System.Int32,System.Collections.Generic.IEnumerable`1[FSI_0008.PathfinderAnalysis.DamageDistribution+DamageCount]]]]
mapping
FSI_0018+it@36-25
ie
[ 9 ]
HeadOrDefault
9
TailOrNull
[ ]
HeadOrDefault0
TailOrNull
<null>
HeadSystem.InvalidOperationException: The input list was empty. at Microsoft.FSharp.Collections.FSharpList`1.get_Head() in D:\a\_work\1\s\src\FSharp.Core\prim-types.fs:line 4314 at lambda_method507(Closure, FSharpList`1) at Microsoft.DotNet.Interactive.Formatting.MemberAccessor`1.GetValueOrException(T instance) in D:\a\_work\1\s\src\Microsoft.DotNet.Interactive.Formatting\MemberAccessor{T}.cs:line 58
TailSystem.InvalidOperationException: The input list was empty. at Microsoft.FSharp.Collections.FSharpList`1.get_Tail() in D:\a\_work\1\s\src\FSharp.Core\prim-types.fs:line 4319 at lambda_method508(Closure, FSharpList`1) at Microsoft.DotNet.Interactive.Formatting.MemberAccessor`1.GetValueOrException(T instance) in D:\a\_work\1\s\src\Microsoft.DotNet.Interactive.Formatting\MemberAccessor{T}.cs:line 58
(values)
[  ]
Head
9
Tail
[ ]
HeadOrDefault0
TailOrNull
<null>
HeadSystem.InvalidOperationException: The input list was empty. at Microsoft.FSharp.Collections.FSharpList`1.get_Head() in D:\a\_work\1\s\src\FSharp.Core\prim-types.fs:line 4314 at lambda_method507(Closure, FSharpList`1) at Microsoft.DotNet.Interactive.Formatting.MemberAccessor`1.GetValueOrException(T instance) in D:\a\_work\1\s\src\Microsoft.DotNet.Interactive.Formatting\MemberAccessor{T}.cs:line 58
TailSystem.InvalidOperationException: The input list was empty. at Microsoft.FSharp.Collections.FSharpList`1.get_Tail() in D:\a\_work\1\s\src\FSharp.Core\prim-types.fs:line 4319 at lambda_method508(Closure, FSharpList`1) at Microsoft.DotNet.Interactive.Formatting.MemberAccessor`1.GetValueOrException(T instance) in D:\a\_work\1\s\src\Microsoft.DotNet.Interactive.Formatting\MemberAccessor{T}.cs:line 58
(values)
[  ]
(values)
[ 9 ]
(values)
indexvalue
0
[ (🩸 Thunderstrike (Middle) ❖❖, 9, Microsoft.FSharp.Collections.IEnumerator+mkSeq@177[FSI_0008.PathfinderAnalysis.DamageDistribution+DamageCount]), (⚔ïļ Double Slice (Swords) ❖❖, 9, Microsoft.FSharp.Collections.IEnumerator+mkSeq@177[FSI_0008.PathfinderAnalysis.DamageDistribution+DamageCount]), (🐉 Greatsword (2 Strikes) ❖❖, 9, Microsoft.FSharp.Collections.IEnumerator+mkSeq@177[FSI_0008.PathfinderAnalysis.DamageDistribution+DamageCount]), (🧙 Force Barrage ❖❖, 9, Microsoft.FSharp.Collections.IEnumerator+mkSeq@177[FSI_0008.PathfinderAnalysis.DamageDistribution+DamageCount]), (🧙 Force Barrage ❖❖❖, 9, Microsoft.FSharp.Collections.IEnumerator+mkSeq@177[FSI_0008.PathfinderAnalysis.DamageDistribution+DamageCount]) ]
HeadOrDefault
(🩸 Thunderstrike (Middle) ❖❖, 9, Microsoft.FSharp.Collections.IEnumerator+mkSeq@177[FSI_0008.PathfinderAnalysis.DamageDistribution+DamageCount])
Item1
🩸 Thunderstrike (Middle) ❖❖
Item2
9
Item3
[ { Damage = 0.0 Count = 254803968 }, { Damage = 0.2222222222 Count = 1 }, { Damage = 0.237037037 Count = 10 }, { Damage = 0.2518518519 Count = 55 }, { Damage = 0.2666666667 Count = 220 }, { Damage = 0.2777777778 Count = 1 }, { Damage = 0.2814814815 Count = 710 }, { Damage = 0.2962962963 Count = 1962 }, { Damage = 0.3111111111 Count = 4730 }, { Damage = 0.3148148148 Count = 55 }, { Damage = 0.3259259259 Count = 10340 }, { Damage = 0.3333333333 Count = 220 }, { Damage = 0.3407407407 Count = 20745 }, { Damage = 0.3518518519 Count = 710 }, { Damage = 0.3555555556 Count = 38710 }, { Damage = 0.3703703704 Count = 69855 }, { Damage = 0.3851851852 Count = 112960 }, { Damage = 0.3888888889 Count = 4730 }, { Damage = 0.4 Count = 179515 }, { Damage = 0.4074074074 Count = 10340 } ... (more) ]
fMicrosoft.FSharp.Collections.SeqModule+revamp@729[System.Tuple`2[System.Double,System.Collections.Generic.IEnumerable`1[FSI_0008.PathfinderAnalysis.DamageDistribution+DamageCount]],FSI_0008.PathfinderAnalysis.DamageDistribution+DamageCount]
(values)
indexvalue
0{ Damage = 0.0 Count = 254803968 }
1{ Damage = 0.2222222222 Count = 1 }
2{ Damage = 0.237037037 Count = 10 }
3{ Damage = 0.2518518519 Count = 55 }
4{ Damage = 0.2666666667 Count = 220 }
5{ Damage = 0.2777777778 Count = 1 }
6{ Damage = 0.2814814815 Count = 710 }
7{ Damage = 0.2962962963 Count = 1962 }
8{ Damage = 0.3111111111 Count = 4730 }
9{ Damage = 0.3148148148 Count = 55 }
10{ Damage = 0.3259259259 Count = 10340 }
11{ Damage = 0.3333333333 Count = 220 }
12{ Damage = 0.3407407407 Count = 20745 }
13{ Damage = 0.3518518519 Count = 710 }
14{ Damage = 0.3555555556 Count = 38710 }
15{ Damage = 0.3703703704 Count = 69855 }
16{ Damage = 0.3851851852 Count = 112960 }
17{ Damage = 0.3888888889 Count = 4730 }
18{ Damage = 0.4 Count = 179515 }
19{ Damage = 0.4074074074 Count = 10340 }
... (more)
TailOrNull
[ (⚔ïļ Double Slice (Swords) ❖❖, 9, Microsoft.FSharp.Collections.IEnumerator+mkSeq@177[FSI_0008.PathfinderAnalysis.DamageDistribution+DamageCount]), (🐉 Greatsword (2 Strikes) ❖❖, 9, Microsoft.FSharp.Collections.IEnumerator+mkSeq@177[FSI_0008.PathfinderAnalysis.DamageDistribution+DamageCount]), (🧙 Force Barrage ❖❖, 9, Microsoft.FSharp.Collections.IEnumerator+mkSeq@177[FSI_0008.PathfinderAnalysis.DamageDistribution+DamageCount]), (🧙 Force Barrage ❖❖❖, 9, Microsoft.FSharp.Collections.IEnumerator+mkSeq@177[FSI_0008.PathfinderAnalysis.DamageDistribution+DamageCount]) ]
HeadOrDefault
(⚔ïļ Double Slice (Swords) ❖❖, 9, Microsoft.FSharp.Collections.IEnumerator+mkSeq@177[FSI_0008.PathfinderAnalysis.DamageDistribution+DamageCount])
Item1⚔ïļ Double Slice (Swords) ❖❖
Item29
Item3[ { Damage = 0.0 Count = 82944 }, { Damage = 0.1481481481 Count = 3000 }, { Damage = 0.162962963 Count = 9000 }, { Damage = 0.1777777778 Count = 18000 }, { Damage = 0.1925925926 Count = 30000 }, { Damage = 0.2074074074 Count = 45000 }, { Damage = 0.2222222222 Count = 63000 }, { Damage = 0.237037037 Count = 77160 }, { Damage = 0.2518518519 Count = 87480 }, { Damage = 0.2666666667 Count = 91800 }, { Damage = 0.2814814815 Count = 90120 }, { Damage = 0.2962962963 Count = 83065 }, { Damage = 0.3111111111 Count = 68910 }, { Damage = 0.3259259259 Count = 57165 }, { Damage = 0.3407407407 Count = 41180 }, { Damage = 0.3407407407 Count = 900 }, { Damage = 0.3555555556 Count = 750 }, { Damage = 0.3555555556 Count = 34440 }, { Damage = 0.3703703704 Count = 24420 }, { Damage = 0.3851851852 Count = 28250 } ... (more) ]
TailOrNull
[ (🐉 Greatsword (2 Strikes) ❖❖, 9, Microsoft.FSharp.Collections.IEnumerator+mkSeq@177[FSI_0008.PathfinderAnalysis.DamageDistribution+DamageCount]), (🧙 Force Barrage ❖❖, 9, Microsoft.FSharp.Collections.IEnumerator+mkSeq@177[FSI_0008.PathfinderAnalysis.DamageDistribution+DamageCount]), (🧙 Force Barrage ❖❖❖, 9, Microsoft.FSharp.Collections.IEnumerator+mkSeq@177[FSI_0008.PathfinderAnalysis.DamageDistribution+DamageCount]) ]
HeadOrDefault(🐉 Greatsword (2 Strikes) ❖❖, 9, Microsoft.FSharp.Collections.IEnumerator+mkSeq@177[FSI_0008.PathfinderAnalysis.DamageDistribution+DamageCount])
TailOrNull[ (🧙 Force Barrage ❖❖, 9, Microsoft.FSharp.Collections.IEnumerator+mkSeq@177[FSI_0008.PathfinderAnalysis.DamageDistribution+DamageCount]), (🧙 Force Barrage ❖❖❖, 9, Microsoft.FSharp.Collections.IEnumerator+mkSeq@177[FSI_0008.PathfinderAnalysis.DamageDistribution+DamageCount]) ]
Head(🐉 Greatsword (2 Strikes) ❖❖, 9, Microsoft.FSharp.Collections.IEnumerator+mkSeq@177[FSI_0008.PathfinderAnalysis.DamageDistribution+DamageCount])
Tail[ (🧙 Force Barrage ❖❖, 9, Microsoft.FSharp.Collections.IEnumerator+mkSeq@177[FSI_0008.PathfinderAnalysis.DamageDistribution+DamageCount]), (🧙 Force Barrage ❖❖❖, 9, Microsoft.FSharp.Collections.IEnumerator+mkSeq@177[FSI_0008.PathfinderAnalysis.DamageDistribution+DamageCount]) ]
(values)
indexvalue
0(🐉 Greatsword (2 Strikes) ❖❖, 9, Microsoft.FSharp.Collections.IEnumerator+mkSeq@177[FSI_0008.PathfinderAnalysis.DamageDistribution+DamageCount])
1(🧙 Force Barrage ❖❖, 9, Microsoft.FSharp.Collections.IEnumerator+mkSeq@177[FSI_0008.PathfinderAnalysis.DamageDistribution+DamageCount])
2(🧙 Force Barrage ❖❖❖, 9, Microsoft.FSharp.Collections.IEnumerator+mkSeq@177[FSI_0008.PathfinderAnalysis.DamageDistribution+DamageCount])
Head
(⚔ïļ Double Slice (Swords) ❖❖, 9, Microsoft.FSharp.Collections.IEnumerator+mkSeq@177[FSI_0008.PathfinderAnalysis.DamageDistribution+DamageCount])
Item1⚔ïļ Double Slice (Swords) ❖❖
Item29
Item3[ { Damage = 0.0 Count = 82944 }, { Damage = 0.1481481481 Count = 3000 }, { Damage = 0.162962963 Count = 9000 }, { Damage = 0.1777777778 Count = 18000 }, { Damage = 0.1925925926 Count = 30000 }, { Damage = 0.2074074074 Count = 45000 }, { Damage = 0.2222222222 Count = 63000 }, { Damage = 0.237037037 Count = 77160 }, { Damage = 0.2518518519 Count = 87480 }, { Damage = 0.2666666667 Count = 91800 }, { Damage = 0.2814814815 Count = 90120 }, { Damage = 0.2962962963 Count = 83065 }, { Damage = 0.3111111111 Count = 68910 }, { Damage = 0.3259259259 Count = 57165 }, { Damage = 0.3407407407 Count = 41180 }, { Damage = 0.3407407407 Count = 900 }, { Damage = 0.3555555556 Count = 750 }, { Damage = 0.3555555556 Count = 34440 }, { Damage = 0.3703703704 Count = 24420 }, { Damage = 0.3851851852 Count = 28250 } ... (more) ]
Tail
[ (🐉 Greatsword (2 Strikes) ❖❖, 9, Microsoft.FSharp.Collections.IEnumerator+mkSeq@177[FSI_0008.PathfinderAnalysis.DamageDistribution+DamageCount]), (🧙 Force Barrage ❖❖, 9, Microsoft.FSharp.Collections.IEnumerator+mkSeq@177[FSI_0008.PathfinderAnalysis.DamageDistribution+DamageCount]), (🧙 Force Barrage ❖❖❖, 9, Microsoft.FSharp.Collections.IEnumerator+mkSeq@177[FSI_0008.PathfinderAnalysis.DamageDistribution+DamageCount]) ]
HeadOrDefault(🐉 Greatsword (2 Strikes) ❖❖, 9, Microsoft.FSharp.Collections.IEnumerator+mkSeq@177[FSI_0008.PathfinderAnalysis.DamageDistribution+DamageCount])
TailOrNull[ (🧙 Force Barrage ❖❖, 9, Microsoft.FSharp.Collections.IEnumerator+mkSeq@177[FSI_0008.PathfinderAnalysis.DamageDistribution+DamageCount]), (🧙 Force Barrage ❖❖❖, 9, Microsoft.FSharp.Collections.IEnumerator+mkSeq@177[FSI_0008.PathfinderAnalysis.DamageDistribution+DamageCount]) ]
Head(🐉 Greatsword (2 Strikes) ❖❖, 9, Microsoft.FSharp.Collections.IEnumerator+mkSeq@177[FSI_0008.PathfinderAnalysis.DamageDistribution+DamageCount])
Tail[ (🧙 Force Barrage ❖❖, 9, Microsoft.FSharp.Collections.IEnumerator+mkSeq@177[FSI_0008.PathfinderAnalysis.DamageDistribution+DamageCount]), (🧙 Force Barrage ❖❖❖, 9, Microsoft.FSharp.Collections.IEnumerator+mkSeq@177[FSI_0008.PathfinderAnalysis.DamageDistribution+DamageCount]) ]
(values)
indexvalue
0(🐉 Greatsword (2 Strikes) ❖❖, 9, Microsoft.FSharp.Collections.IEnumerator+mkSeq@177[FSI_0008.PathfinderAnalysis.DamageDistribution+DamageCount])
1(🧙 Force Barrage ❖❖, 9, Microsoft.FSharp.Collections.IEnumerator+mkSeq@177[FSI_0008.PathfinderAnalysis.DamageDistribution+DamageCount])
2(🧙 Force Barrage ❖❖❖, 9, Microsoft.FSharp.Collections.IEnumerator+mkSeq@177[FSI_0008.PathfinderAnalysis.DamageDistribution+DamageCount])
(values)
indexvalue
0
(⚔ïļ Double Slice (Swords) ❖❖, 9, Microsoft.FSharp.Collections.IEnumerator+mkSeq@177[FSI_0008.PathfinderAnalysis.DamageDistribution+DamageCount])
Item1⚔ïļ Double Slice (Swords) ❖❖
Item29
Item3[ { Damage = 0.0 Count = 82944 }, { Damage = 0.1481481481 Count = 3000 }, { Damage = 0.162962963 Count = 9000 }, { Damage = 0.1777777778 Count = 18000 }, { Damage = 0.1925925926 Count = 30000 }, { Damage = 0.2074074074 Count = 45000 }, { Damage = 0.2222222222 Count = 63000 }, { Damage = 0.237037037 Count = 77160 }, { Damage = 0.2518518519 Count = 87480 }, { Damage = 0.2666666667 Count = 91800 }, { Damage = 0.2814814815 Count = 90120 }, { Damage = 0.2962962963 Count = 83065 }, { Damage = 0.3111111111 Count = 68910 }, { Damage = 0.3259259259 Count = 57165 }, { Damage = 0.3407407407 Count = 41180 }, { Damage = 0.3407407407 Count = 900 }, { Damage = 0.3555555556 Count = 750 }, { Damage = 0.3555555556 Count = 34440 }, { Damage = 0.3703703704 Count = 24420 }, { Damage = 0.3851851852 Count = 28250 } ... (more) ]
1
(🐉 Greatsword (2 Strikes) ❖❖, 9, Microsoft.FSharp.Collections.IEnumerator+mkSeq@177[FSI_0008.PathfinderAnalysis.DamageDistribution+DamageCount])
Item1🐉 Greatsword (2 Strikes) ❖❖
Item29
Item3[ { Damage = 0.0 Count = 3732480 }, { Damage = 0.1259259259 Count = 864 }, { Damage = 0.1333333333 Count = 2592 }, { Damage = 0.1407407407 Count = 5184 }, { Damage = 0.1481481481 Count = 8640 }, { Damage = 0.1555555556 Count = 12960 }, { Damage = 0.162962963 Count = 18144 }, { Damage = 0.1703703704 Count = 23328 }, { Damage = 0.1777777778 Count = 28512 }, { Damage = 0.1851851852 Count = 33696 }, { Damage = 0.1925925926 Count = 38880 }, { Damage = 0.2 Count = 44064 }, { Damage = 0.2074074074 Count = 49248 }, { Damage = 0.2148148148 Count = 52704 }, { Damage = 0.2222222222 Count = 54432 }, { Damage = 0.2296296296 Count = 54432 }, { Damage = 0.237037037 Count = 52704 }, { Damage = 0.2444444444 Count = 49248 }, { Damage = 0.2518518519 Count = 80352 }, { Damage = 0.2592592593 Count = 38880 } ... (more) ]
2
(🧙 Force Barrage ❖❖, 9, Microsoft.FSharp.Collections.IEnumerator+mkSeq@177[FSI_0008.PathfinderAnalysis.DamageDistribution+DamageCount])
Item1🧙 Force Barrage ❖❖
Item29
Item3[ { Damage = 7.0 Count = 20 }, { Damage = 8.0 Count = 120 }, { Damage = 9.0 Count = 420 }, { Damage = 10.0 Count = 1120 }, { Damage = 11.0 Count = 2400 }, { Damage = 12.0 Count = 4320 }, { Damage = 13.0 Count = 6720 }, { Damage = 14.0 Count = 9120 }, { Damage = 15.0 Count = 10920 }, { Damage = 16.0 Count = 11600 }, { Damage = 17.0 Count = 10920 }, { Damage = 18.0 Count = 9120 }, { Damage = 19.0 Count = 6720 }, { Damage = 20.0 Count = 4320 }, { Damage = 21.0 Count = 2400 }, { Damage = 22.0 Count = 1120 }, { Damage = 23.0 Count = 420 }, { Damage = 24.0 Count = 120 }, { Damage = 25.0 Count = 20 } ]
3
(🧙 Force Barrage ❖❖❖, 9, Microsoft.FSharp.Collections.IEnumerator+mkSeq@177[FSI_0008.PathfinderAnalysis.DamageDistribution+DamageCount])
Item1🧙 Force Barrage ❖❖❖
Item29
Item3[ { Damage = 10.0 Count = 20 }, { Damage = 11.0 Count = 180 }, { Damage = 12.0 Count = 900 }, { Damage = 13.0 Count = 3300 }, { Damage = 14.0 Count = 9720 }, { Damage = 15.0 Count = 24120 }, { Damage = 16.0 Count = 51960 }, { Damage = 17.0 Count = 99000 }, { Damage = 18.0 Count = 169020 }, { Damage = 19.0 Count = 261020 }, { Damage = 20.0 Count = 367020 }, { Damage = 21.0 Count = 472140 }, { Damage = 22.0 Count = 557520 }, { Damage = 23.0 Count = 605520 }, { Damage = 24.0 Count = 605520 }, { Damage = 25.0 Count = 557520 }, { Damage = 26.0 Count = 472140 }, { Damage = 27.0 Count = 367020 }, { Damage = 28.0 Count = 261020 }, { Damage = 29.0 Count = 169020 } ... (more) ]
Head
(🩸 Thunderstrike (Middle) ❖❖, 9, Microsoft.FSharp.Collections.IEnumerator+mkSeq@177[FSI_0008.PathfinderAnalysis.DamageDistribution+DamageCount])
Item1
🩸 Thunderstrike (Middle) ❖❖
Item2
9
Item3
[ { Damage = 0.0 Count = 254803968 }, { Damage = 0.2222222222 Count = 1 }, { Damage = 0.237037037 Count = 10 }, { Damage = 0.2518518519 Count = 55 }, { Damage = 0.2666666667 Count = 220 }, { Damage = 0.2777777778 Count = 1 }, { Damage = 0.2814814815 Count = 710 }, { Damage = 0.2962962963 Count = 1962 }, { Damage = 0.3111111111 Count = 4730 }, { Damage = 0.3148148148 Count = 55 }, { Damage = 0.3259259259 Count = 10340 }, { Damage = 0.3333333333 Count = 220 }, { Damage = 0.3407407407 Count = 20745 }, { Damage = 0.3518518519 Count = 710 }, { Damage = 0.3555555556 Count = 38710 }, { Damage = 0.3703703704 Count = 69855 }, { Damage = 0.3851851852 Count = 112960 }, { Damage = 0.3888888889 Count = 4730 }, { Damage = 0.4 Count = 179515 }, { Damage = 0.4074074074 Count = 10340 } ... (more) ]
fMicrosoft.FSharp.Collections.SeqModule+revamp@729[System.Tuple`2[System.Double,System.Collections.Generic.IEnumerable`1[FSI_0008.PathfinderAnalysis.DamageDistribution+DamageCount]],FSI_0008.PathfinderAnalysis.DamageDistribution+DamageCount]
(values)
indexvalue
0{ Damage = 0.0 Count = 254803968 }
1{ Damage = 0.2222222222 Count = 1 }
2{ Damage = 0.237037037 Count = 10 }
3{ Damage = 0.2518518519 Count = 55 }
4{ Damage = 0.2666666667 Count = 220 }
5{ Damage = 0.2777777778 Count = 1 }
6{ Damage = 0.2814814815 Count = 710 }
7{ Damage = 0.2962962963 Count = 1962 }
8{ Damage = 0.3111111111 Count = 4730 }
9{ Damage = 0.3148148148 Count = 55 }
10{ Damage = 0.3259259259 Count = 10340 }
11{ Damage = 0.3333333333 Count = 220 }
12{ Damage = 0.3407407407 Count = 20745 }
13{ Damage = 0.3518518519 Count = 710 }
14{ Damage = 0.3555555556 Count = 38710 }
15{ Damage = 0.3703703704 Count = 69855 }
16{ Damage = 0.3851851852 Count = 112960 }
17{ Damage = 0.3888888889 Count = 4730 }
18{ Damage = 0.4 Count = 179515 }
19{ Damage = 0.4074074074 Count = 10340 }
... (more)
Tail
[ (⚔ïļ Double Slice (Swords) ❖❖, 9, Microsoft.FSharp.Collections.IEnumerator+mkSeq@177[FSI_0008.PathfinderAnalysis.DamageDistribution+DamageCount]), (🐉 Greatsword (2 Strikes) ❖❖, 9, Microsoft.FSharp.Collections.IEnumerator+mkSeq@177[FSI_0008.PathfinderAnalysis.DamageDistribution+DamageCount]), (🧙 Force Barrage ❖❖, 9, Microsoft.FSharp.Collections.IEnumerator+mkSeq@177[FSI_0008.PathfinderAnalysis.DamageDistribution+DamageCount]), (🧙 Force Barrage ❖❖❖, 9, Microsoft.FSharp.Collections.IEnumerator+mkSeq@177[FSI_0008.PathfinderAnalysis.DamageDistribution+DamageCount]) ]
HeadOrDefault
(⚔ïļ Double Slice (Swords) ❖❖, 9, Microsoft.FSharp.Collections.IEnumerator+mkSeq@177[FSI_0008.PathfinderAnalysis.DamageDistribution+DamageCount])
Item1⚔ïļ Double Slice (Swords) ❖❖
Item29
Item3[ { Damage = 0.0 Count = 82944 }, { Damage = 0.1481481481 Count = 3000 }, { Damage = 0.162962963 Count = 9000 }, { Damage = 0.1777777778 Count = 18000 }, { Damage = 0.1925925926 Count = 30000 }, { Damage = 0.2074074074 Count = 45000 }, { Damage = 0.2222222222 Count = 63000 }, { Damage = 0.237037037 Count = 77160 }, { Damage = 0.2518518519 Count = 87480 }, { Damage = 0.2666666667 Count = 91800 }, { Damage = 0.2814814815 Count = 90120 }, { Damage = 0.2962962963 Count = 83065 }, { Damage = 0.3111111111 Count = 68910 }, { Damage = 0.3259259259 Count = 57165 }, { Damage = 0.3407407407 Count = 41180 }, { Damage = 0.3407407407 Count = 900 }, { Damage = 0.3555555556 Count = 750 }, { Damage = 0.3555555556 Count = 34440 }, { Damage = 0.3703703704 Count = 24420 }, { Damage = 0.3851851852 Count = 28250 } ... (more) ]
TailOrNull
[ (🐉 Greatsword (2 Strikes) ❖❖, 9, Microsoft.FSharp.Collections.IEnumerator+mkSeq@177[FSI_0008.PathfinderAnalysis.DamageDistribution+DamageCount]), (🧙 Force Barrage ❖❖, 9, Microsoft.FSharp.Collections.IEnumerator+mkSeq@177[FSI_0008.PathfinderAnalysis.DamageDistribution+DamageCount]), (🧙 Force Barrage ❖❖❖, 9, Microsoft.FSharp.Collections.IEnumerator+mkSeq@177[FSI_0008.PathfinderAnalysis.DamageDistribution+DamageCount]) ]
HeadOrDefault(🐉 Greatsword (2 Strikes) ❖❖, 9, Microsoft.FSharp.Collections.IEnumerator+mkSeq@177[FSI_0008.PathfinderAnalysis.DamageDistribution+DamageCount])
TailOrNull[ (🧙 Force Barrage ❖❖, 9, Microsoft.FSharp.Collections.IEnumerator+mkSeq@177[FSI_0008.PathfinderAnalysis.DamageDistribution+DamageCount]), (🧙 Force Barrage ❖❖❖, 9, Microsoft.FSharp.Collections.IEnumerator+mkSeq@177[FSI_0008.PathfinderAnalysis.DamageDistribution+DamageCount]) ]
Head(🐉 Greatsword (2 Strikes) ❖❖, 9, Microsoft.FSharp.Collections.IEnumerator+mkSeq@177[FSI_0008.PathfinderAnalysis.DamageDistribution+DamageCount])
Tail[ (🧙 Force Barrage ❖❖, 9, Microsoft.FSharp.Collections.IEnumerator+mkSeq@177[FSI_0008.PathfinderAnalysis.DamageDistribution+DamageCount]), (🧙 Force Barrage ❖❖❖, 9, Microsoft.FSharp.Collections.IEnumerator+mkSeq@177[FSI_0008.PathfinderAnalysis.DamageDistribution+DamageCount]) ]
(values)
indexvalue
0(🐉 Greatsword (2 Strikes) ❖❖, 9, Microsoft.FSharp.Collections.IEnumerator+mkSeq@177[FSI_0008.PathfinderAnalysis.DamageDistribution+DamageCount])
1(🧙 Force Barrage ❖❖, 9, Microsoft.FSharp.Collections.IEnumerator+mkSeq@177[FSI_0008.PathfinderAnalysis.DamageDistribution+DamageCount])
2(🧙 Force Barrage ❖❖❖, 9, Microsoft.FSharp.Collections.IEnumerator+mkSeq@177[FSI_0008.PathfinderAnalysis.DamageDistribution+DamageCount])
Head
(⚔ïļ Double Slice (Swords) ❖❖, 9, Microsoft.FSharp.Collections.IEnumerator+mkSeq@177[FSI_0008.PathfinderAnalysis.DamageDistribution+DamageCount])
Item1⚔ïļ Double Slice (Swords) ❖❖
Item29
Item3[ { Damage = 0.0 Count = 82944 }, { Damage = 0.1481481481 Count = 3000 }, { Damage = 0.162962963 Count = 9000 }, { Damage = 0.1777777778 Count = 18000 }, { Damage = 0.1925925926 Count = 30000 }, { Damage = 0.2074074074 Count = 45000 }, { Damage = 0.2222222222 Count = 63000 }, { Damage = 0.237037037 Count = 77160 }, { Damage = 0.2518518519 Count = 87480 }, { Damage = 0.2666666667 Count = 91800 }, { Damage = 0.2814814815 Count = 90120 }, { Damage = 0.2962962963 Count = 83065 }, { Damage = 0.3111111111 Count = 68910 }, { Damage = 0.3259259259 Count = 57165 }, { Damage = 0.3407407407 Count = 41180 }, { Damage = 0.3407407407 Count = 900 }, { Damage = 0.3555555556 Count = 750 }, { Damage = 0.3555555556 Count = 34440 }, { Damage = 0.3703703704 Count = 24420 }, { Damage = 0.3851851852 Count = 28250 } ... (more) ]
Tail
[ (🐉 Greatsword (2 Strikes) ❖❖, 9, Microsoft.FSharp.Collections.IEnumerator+mkSeq@177[FSI_0008.PathfinderAnalysis.DamageDistribution+DamageCount]), (🧙 Force Barrage ❖❖, 9, Microsoft.FSharp.Collections.IEnumerator+mkSeq@177[FSI_0008.PathfinderAnalysis.DamageDistribution+DamageCount]), (🧙 Force Barrage ❖❖❖, 9, Microsoft.FSharp.Collections.IEnumerator+mkSeq@177[FSI_0008.PathfinderAnalysis.DamageDistribution+DamageCount]) ]
HeadOrDefault(🐉 Greatsword (2 Strikes) ❖❖, 9, Microsoft.FSharp.Collections.IEnumerator+mkSeq@177[FSI_0008.PathfinderAnalysis.DamageDistribution+DamageCount])
TailOrNull[ (🧙 Force Barrage ❖❖, 9, Microsoft.FSharp.Collections.IEnumerator+mkSeq@177[FSI_0008.PathfinderAnalysis.DamageDistribution+DamageCount]), (🧙 Force Barrage ❖❖❖, 9, Microsoft.FSharp.Collections.IEnumerator+mkSeq@177[FSI_0008.PathfinderAnalysis.DamageDistribution+DamageCount]) ]
Head(🐉 Greatsword (2 Strikes) ❖❖, 9, Microsoft.FSharp.Collections.IEnumerator+mkSeq@177[FSI_0008.PathfinderAnalysis.DamageDistribution+DamageCount])
Tail[ (🧙 Force Barrage ❖❖, 9, Microsoft.FSharp.Collections.IEnumerator+mkSeq@177[FSI_0008.PathfinderAnalysis.DamageDistribution+DamageCount]), (🧙 Force Barrage ❖❖❖, 9, Microsoft.FSharp.Collections.IEnumerator+mkSeq@177[FSI_0008.PathfinderAnalysis.DamageDistribution+DamageCount]) ]
(values)
indexvalue
0(🐉 Greatsword (2 Strikes) ❖❖, 9, Microsoft.FSharp.Collections.IEnumerator+mkSeq@177[FSI_0008.PathfinderAnalysis.DamageDistribution+DamageCount])
1(🧙 Force Barrage ❖❖, 9, Microsoft.FSharp.Collections.IEnumerator+mkSeq@177[FSI_0008.PathfinderAnalysis.DamageDistribution+DamageCount])
2(🧙 Force Barrage ❖❖❖, 9, Microsoft.FSharp.Collections.IEnumerator+mkSeq@177[FSI_0008.PathfinderAnalysis.DamageDistribution+DamageCount])
(values)
indexvalue
0
(⚔ïļ Double Slice (Swords) ❖❖, 9, Microsoft.FSharp.Collections.IEnumerator+mkSeq@177[FSI_0008.PathfinderAnalysis.DamageDistribution+DamageCount])
Item1⚔ïļ Double Slice (Swords) ❖❖
Item29
Item3[ { Damage = 0.0 Count = 82944 }, { Damage = 0.1481481481 Count = 3000 }, { Damage = 0.162962963 Count = 9000 }, { Damage = 0.1777777778 Count = 18000 }, { Damage = 0.1925925926 Count = 30000 }, { Damage = 0.2074074074 Count = 45000 }, { Damage = 0.2222222222 Count = 63000 }, { Damage = 0.237037037 Count = 77160 }, { Damage = 0.2518518519 Count = 87480 }, { Damage = 0.2666666667 Count = 91800 }, { Damage = 0.2814814815 Count = 90120 }, { Damage = 0.2962962963 Count = 83065 }, { Damage = 0.3111111111 Count = 68910 }, { Damage = 0.3259259259 Count = 57165 }, { Damage = 0.3407407407 Count = 41180 }, { Damage = 0.3407407407 Count = 900 }, { Damage = 0.3555555556 Count = 750 }, { Damage = 0.3555555556 Count = 34440 }, { Damage = 0.3703703704 Count = 24420 }, { Damage = 0.3851851852 Count = 28250 } ... (more) ]
1
(🐉 Greatsword (2 Strikes) ❖❖, 9, Microsoft.FSharp.Collections.IEnumerator+mkSeq@177[FSI_0008.PathfinderAnalysis.DamageDistribution+DamageCount])
Item1🐉 Greatsword (2 Strikes) ❖❖
Item29
Item3[ { Damage = 0.0 Count = 3732480 }, { Damage = 0.1259259259 Count = 864 }, { Damage = 0.1333333333 Count = 2592 }, { Damage = 0.1407407407 Count = 5184 }, { Damage = 0.1481481481 Count = 8640 }, { Damage = 0.1555555556 Count = 12960 }, { Damage = 0.162962963 Count = 18144 }, { Damage = 0.1703703704 Count = 23328 }, { Damage = 0.1777777778 Count = 28512 }, { Damage = 0.1851851852 Count = 33696 }, { Damage = 0.1925925926 Count = 38880 }, { Damage = 0.2 Count = 44064 }, { Damage = 0.2074074074 Count = 49248 }, { Damage = 0.2148148148 Count = 52704 }, { Damage = 0.2222222222 Count = 54432 }, { Damage = 0.2296296296 Count = 54432 }, { Damage = 0.237037037 Count = 52704 }, { Damage = 0.2444444444 Count = 49248 }, { Damage = 0.2518518519 Count = 80352 }, { Damage = 0.2592592593 Count = 38880 } ... (more) ]
2
(🧙 Force Barrage ❖❖, 9, Microsoft.FSharp.Collections.IEnumerator+mkSeq@177[FSI_0008.PathfinderAnalysis.DamageDistribution+DamageCount])
Item1🧙 Force Barrage ❖❖
Item29
Item3[ { Damage = 7.0 Count = 20 }, { Damage = 8.0 Count = 120 }, { Damage = 9.0 Count = 420 }, { Damage = 10.0 Count = 1120 }, { Damage = 11.0 Count = 2400 }, { Damage = 12.0 Count = 4320 }, { Damage = 13.0 Count = 6720 }, { Damage = 14.0 Count = 9120 }, { Damage = 15.0 Count = 10920 }, { Damage = 16.0 Count = 11600 }, { Damage = 17.0 Count = 10920 }, { Damage = 18.0 Count = 9120 }, { Damage = 19.0 Count = 6720 }, { Damage = 20.0 Count = 4320 }, { Damage = 21.0 Count = 2400 }, { Damage = 22.0 Count = 1120 }, { Damage = 23.0 Count = 420 }, { Damage = 24.0 Count = 120 }, { Damage = 25.0 Count = 20 } ]
3
(🧙 Force Barrage ❖❖❖, 9, Microsoft.FSharp.Collections.IEnumerator+mkSeq@177[FSI_0008.PathfinderAnalysis.DamageDistribution+DamageCount])
Item1🧙 Force Barrage ❖❖❖
Item29
Item3[ { Damage = 10.0 Count = 20 }, { Damage = 11.0 Count = 180 }, { Damage = 12.0 Count = 900 }, { Damage = 13.0 Count = 3300 }, { Damage = 14.0 Count = 9720 }, { Damage = 15.0 Count = 24120 }, { Damage = 16.0 Count = 51960 }, { Damage = 17.0 Count = 99000 }, { Damage = 18.0 Count = 169020 }, { Damage = 19.0 Count = 261020 }, { Damage = 20.0 Count = 367020 }, { Damage = 21.0 Count = 472140 }, { Damage = 22.0 Count = 557520 }, { Damage = 23.0 Count = 605520 }, { Damage = 24.0 Count = 605520 }, { Damage = 25.0 Count = 557520 }, { Damage = 26.0 Count = 472140 }, { Damage = 27.0 Count = 367020 }, { Damage = 28.0 Count = 261020 }, { Damage = 29.0 Count = 169020 } ... (more) ]
(values)
indexvalue
0
(🩸 Thunderstrike (Middle) ❖❖, 9, Microsoft.FSharp.Collections.IEnumerator+mkSeq@177[FSI_0008.PathfinderAnalysis.DamageDistribution+DamageCount])
Item1
🩸 Thunderstrike (Middle) ❖❖
Item2
9
Item3
[ { Damage = 0.0 Count = 254803968 }, { Damage = 0.2222222222 Count = 1 }, { Damage = 0.237037037 Count = 10 }, { Damage = 0.2518518519 Count = 55 }, { Damage = 0.2666666667 Count = 220 }, { Damage = 0.2777777778 Count = 1 }, { Damage = 0.2814814815 Count = 710 }, { Damage = 0.2962962963 Count = 1962 }, { Damage = 0.3111111111 Count = 4730 }, { Damage = 0.3148148148 Count = 55 }, { Damage = 0.3259259259 Count = 10340 }, { Damage = 0.3333333333 Count = 220 }, { Damage = 0.3407407407 Count = 20745 }, { Damage = 0.3518518519 Count = 710 }, { Damage = 0.3555555556 Count = 38710 }, { Damage = 0.3703703704 Count = 69855 }, { Damage = 0.3851851852 Count = 112960 }, { Damage = 0.3888888889 Count = 4730 }, { Damage = 0.4 Count = 179515 }, { Damage = 0.4074074074 Count = 10340 } ... (more) ]
fMicrosoft.FSharp.Collections.SeqModule+revamp@729[System.Tuple`2[System.Double,System.Collections.Generic.IEnumerable`1[FSI_0008.PathfinderAnalysis.DamageDistribution+DamageCount]],FSI_0008.PathfinderAnalysis.DamageDistribution+DamageCount]
(values)
indexvalue
0{ Damage = 0.0 Count = 254803968 }
1{ Damage = 0.2222222222 Count = 1 }
2{ Damage = 0.237037037 Count = 10 }
3{ Damage = 0.2518518519 Count = 55 }
4{ Damage = 0.2666666667 Count = 220 }
5{ Damage = 0.2777777778 Count = 1 }
6{ Damage = 0.2814814815 Count = 710 }
7{ Damage = 0.2962962963 Count = 1962 }
8{ Damage = 0.3111111111 Count = 4730 }
9{ Damage = 0.3148148148 Count = 55 }
10{ Damage = 0.3259259259 Count = 10340 }
11{ Damage = 0.3333333333 Count = 220 }
12{ Damage = 0.3407407407 Count = 20745 }
13{ Damage = 0.3518518519 Count = 710 }
14{ Damage = 0.3555555556 Count = 38710 }
15{ Damage = 0.3703703704 Count = 69855 }
16{ Damage = 0.3851851852 Count = 112960 }
17{ Damage = 0.3888888889 Count = 4730 }
18{ Damage = 0.4 Count = 179515 }
19{ Damage = 0.4074074074 Count = 10340 }
... (more)
1
(⚔ïļ Double Slice (Swords) ❖❖, 9, Microsoft.FSharp.Collections.IEnumerator+mkSeq@177[FSI_0008.PathfinderAnalysis.DamageDistribution+DamageCount])
Item1
⚔ïļ Double Slice (Swords) ❖❖
Item2
9
Item3
[ { Damage = 0.0 Count = 82944 }, { Damage = 0.1481481481 Count = 3000 }, { Damage = 0.162962963 Count = 9000 }, { Damage = 0.1777777778 Count = 18000 }, { Damage = 0.1925925926 Count = 30000 }, { Damage = 0.2074074074 Count = 45000 }, { Damage = 0.2222222222 Count = 63000 }, { Damage = 0.237037037 Count = 77160 }, { Damage = 0.2518518519 Count = 87480 }, { Damage = 0.2666666667 Count = 91800 }, { Damage = 0.2814814815 Count = 90120 }, { Damage = 0.2962962963 Count = 83065 }, { Damage = 0.3111111111 Count = 68910 }, { Damage = 0.3259259259 Count = 57165 }, { Damage = 0.3407407407 Count = 41180 }, { Damage = 0.3407407407 Count = 900 }, { Damage = 0.3555555556 Count = 750 }, { Damage = 0.3555555556 Count = 34440 }, { Damage = 0.3703703704 Count = 24420 }, { Damage = 0.3851851852 Count = 28250 } ... (more) ]
fMicrosoft.FSharp.Collections.SeqModule+revamp@729[System.Tuple`2[System.Double,System.Collections.Generic.IEnumerable`1[FSI_0008.PathfinderAnalysis.DamageDistribution+DamageCount]],FSI_0008.PathfinderAnalysis.DamageDistribution+DamageCount]
(values)
indexvalue
0{ Damage = 0.0 Count = 82944 }
1{ Damage = 0.1481481481 Count = 3000 }
2{ Damage = 0.162962963 Count = 9000 }
3{ Damage = 0.1777777778 Count = 18000 }
4{ Damage = 0.1925925926 Count = 30000 }
5{ Damage = 0.2074074074 Count = 45000 }
6{ Damage = 0.2222222222 Count = 63000 }
7{ Damage = 0.237037037 Count = 77160 }
8{ Damage = 0.2518518519 Count = 87480 }
9{ Damage = 0.2666666667 Count = 91800 }
10{ Damage = 0.2814814815 Count = 90120 }
11{ Damage = 0.2962962963 Count = 83065 }
12{ Damage = 0.3111111111 Count = 68910 }
13{ Damage = 0.3259259259 Count = 57165 }
14{ Damage = 0.3407407407 Count = 41180 }
15{ Damage = 0.3407407407 Count = 900 }
16{ Damage = 0.3555555556 Count = 750 }
17{ Damage = 0.3555555556 Count = 34440 }
18{ Damage = 0.3703703704 Count = 24420 }
19{ Damage = 0.3851851852 Count = 28250 }
... (more)
2
(🐉 Greatsword (2 Strikes) ❖❖, 9, Microsoft.FSharp.Collections.IEnumerator+mkSeq@177[FSI_0008.PathfinderAnalysis.DamageDistribution+DamageCount])
Item1
🐉 Greatsword (2 Strikes) ❖❖
Item2
9
Item3
[ { Damage = 0.0 Count = 3732480 }, { Damage = 0.1259259259 Count = 864 }, { Damage = 0.1333333333 Count = 2592 }, { Damage = 0.1407407407 Count = 5184 }, { Damage = 0.1481481481 Count = 8640 }, { Damage = 0.1555555556 Count = 12960 }, { Damage = 0.162962963 Count = 18144 }, { Damage = 0.1703703704 Count = 23328 }, { Damage = 0.1777777778 Count = 28512 }, { Damage = 0.1851851852 Count = 33696 }, { Damage = 0.1925925926 Count = 38880 }, { Damage = 0.2 Count = 44064 }, { Damage = 0.2074074074 Count = 49248 }, { Damage = 0.2148148148 Count = 52704 }, { Damage = 0.2222222222 Count = 54432 }, { Damage = 0.2296296296 Count = 54432 }, { Damage = 0.237037037 Count = 52704 }, { Damage = 0.2444444444 Count = 49248 }, { Damage = 0.2518518519 Count = 80352 }, { Damage = 0.2592592593 Count = 38880 } ... (more) ]
fMicrosoft.FSharp.Collections.SeqModule+revamp@729[System.Tuple`2[System.Double,System.Collections.Generic.IEnumerable`1[FSI_0008.PathfinderAnalysis.DamageDistribution+DamageCount]],FSI_0008.PathfinderAnalysis.DamageDistribution+DamageCount]
(values)
indexvalue
0{ Damage = 0.0 Count = 3732480 }
1{ Damage = 0.1259259259 Count = 864 }
2{ Damage = 0.1333333333 Count = 2592 }
3{ Damage = 0.1407407407 Count = 5184 }
4{ Damage = 0.1481481481 Count = 8640 }
5{ Damage = 0.1555555556 Count = 12960 }
6{ Damage = 0.162962963 Count = 18144 }
7{ Damage = 0.1703703704 Count = 23328 }
8{ Damage = 0.1777777778 Count = 28512 }
9{ Damage = 0.1851851852 Count = 33696 }
10{ Damage = 0.1925925926 Count = 38880 }
11{ Damage = 0.2 Count = 44064 }
12{ Damage = 0.2074074074 Count = 49248 }
13{ Damage = 0.2148148148 Count = 52704 }
14{ Damage = 0.2222222222 Count = 54432 }
15{ Damage = 0.2296296296 Count = 54432 }
16{ Damage = 0.237037037 Count = 52704 }
17{ Damage = 0.2444444444 Count = 49248 }
18{ Damage = 0.2518518519 Count = 80352 }
19{ Damage = 0.2592592593 Count = 38880 }
... (more)
3
(🧙 Force Barrage ❖❖, 9, Microsoft.FSharp.Collections.IEnumerator+mkSeq@177[FSI_0008.PathfinderAnalysis.DamageDistribution+DamageCount])
Item1
🧙 Force Barrage ❖❖
Item2
9
Item3
[ { Damage = 7.0 Count = 20 }, { Damage = 8.0 Count = 120 }, { Damage = 9.0 Count = 420 }, { Damage = 10.0 Count = 1120 }, { Damage = 11.0 Count = 2400 }, { Damage = 12.0 Count = 4320 }, { Damage = 13.0 Count = 6720 }, { Damage = 14.0 Count = 9120 }, { Damage = 15.0 Count = 10920 }, { Damage = 16.0 Count = 11600 }, { Damage = 17.0 Count = 10920 }, { Damage = 18.0 Count = 9120 }, { Damage = 19.0 Count = 6720 }, { Damage = 20.0 Count = 4320 }, { Damage = 21.0 Count = 2400 }, { Damage = 22.0 Count = 1120 }, { Damage = 23.0 Count = 420 }, { Damage = 24.0 Count = 120 }, { Damage = 25.0 Count = 20 } ]
fMicrosoft.FSharp.Collections.SeqModule+revamp@729[System.Tuple`2[System.Double,System.Collections.Generic.IEnumerable`1[FSI_0008.PathfinderAnalysis.DamageDistribution+DamageCount]],FSI_0008.PathfinderAnalysis.DamageDistribution+DamageCount]
(values)
indexvalue
0{ Damage = 7.0 Count = 20 }
1{ Damage = 8.0 Count = 120 }
2{ Damage = 9.0 Count = 420 }
3{ Damage = 10.0 Count = 1120 }
4{ Damage = 11.0 Count = 2400 }
5{ Damage = 12.0 Count = 4320 }
6{ Damage = 13.0 Count = 6720 }
7{ Damage = 14.0 Count = 9120 }
8{ Damage = 15.0 Count = 10920 }
9{ Damage = 16.0 Count = 11600 }
10{ Damage = 17.0 Count = 10920 }
11{ Damage = 18.0 Count = 9120 }
12{ Damage = 19.0 Count = 6720 }
13{ Damage = 20.0 Count = 4320 }
14{ Damage = 21.0 Count = 2400 }
15{ Damage = 22.0 Count = 1120 }
16{ Damage = 23.0 Count = 420 }
17{ Damage = 24.0 Count = 120 }
18{ Damage = 25.0 Count = 20 }
4
(🧙 Force Barrage ❖❖❖, 9, Microsoft.FSharp.Collections.IEnumerator+mkSeq@177[FSI_0008.PathfinderAnalysis.DamageDistribution+DamageCount])
Item1
🧙 Force Barrage ❖❖❖
Item2
9
Item3
[ { Damage = 10.0 Count = 20 }, { Damage = 11.0 Count = 180 }, { Damage = 12.0 Count = 900 }, { Damage = 13.0 Count = 3300 }, { Damage = 14.0 Count = 9720 }, { Damage = 15.0 Count = 24120 }, { Damage = 16.0 Count = 51960 }, { Damage = 17.0 Count = 99000 }, { Damage = 18.0 Count = 169020 }, { Damage = 19.0 Count = 261020 }, { Damage = 20.0 Count = 367020 }, { Damage = 21.0 Count = 472140 }, { Damage = 22.0 Count = 557520 }, { Damage = 23.0 Count = 605520 }, { Damage = 24.0 Count = 605520 }, { Damage = 25.0 Count = 557520 }, { Damage = 26.0 Count = 472140 }, { Damage = 27.0 Count = 367020 }, { Damage = 28.0 Count = 261020 }, { Damage = 29.0 Count = 169020 } ... (more) ]
fMicrosoft.FSharp.Collections.SeqModule+revamp@729[System.Tuple`2[System.Double,System.Collections.Generic.IEnumerable`1[FSI_0008.PathfinderAnalysis.DamageDistribution+DamageCount]],FSI_0008.PathfinderAnalysis.DamageDistribution+DamageCount]
(values)
indexvalue
0{ Damage = 10.0 Count = 20 }
1{ Damage = 11.0 Count = 180 }
2{ Damage = 12.0 Count = 900 }
3{ Damage = 13.0 Count = 3300 }
4{ Damage = 14.0 Count = 9720 }
5{ Damage = 15.0 Count = 24120 }
6{ Damage = 16.0 Count = 51960 }
7{ Damage = 17.0 Count = 99000 }
8{ Damage = 18.0 Count = 169020 }
9{ Damage = 19.0 Count = 261020 }
10{ Damage = 20.0 Count = 367020 }
11{ Damage = 21.0 Count = 472140 }
12{ Damage = 22.0 Count = 557520 }
13{ Damage = 23.0 Count = 605520 }
14{ Damage = 24.0 Count = 605520 }
15{ Damage = 25.0 Count = 557520 }
16{ Damage = 26.0 Count = 472140 }
17{ Damage = 27.0 Count = 367020 }
18{ Damage = 28.0 Count = 261020 }
19{ Damage = 29.0 Count = 169020 }
... (more)
(values)
indexvalue
0