34 lines
1.1 KiB
C#
34 lines
1.1 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
using UnityEngine.Serialization;
|
|
using YachtDice.Categories;
|
|
using YachtDice.Dice;
|
|
|
|
namespace YachtDice.Scoring
|
|
{
|
|
[Serializable]
|
|
public struct ScoreResult
|
|
{
|
|
[FormerlySerializedAs("BaseScore")] public int baseScore;
|
|
[FormerlySerializedAs("FlatBonus")] public int flatBonus;
|
|
[FormerlySerializedAs("Multiplier")] public float multiplier;
|
|
[FormerlySerializedAs("DiceValues")] public int[] diceValues;
|
|
[FormerlySerializedAs("Category")] public CategoryDefinition category;
|
|
|
|
public int FinalScore => Mathf.FloorToInt((baseScore + flatBonus) * multiplier);
|
|
|
|
public static ScoreResult Create(int baseScore, IReadOnlyList<IDice> dice, CategoryDefinition category)
|
|
{
|
|
return new ScoreResult
|
|
{
|
|
baseScore = baseScore,
|
|
flatBonus = 0,
|
|
multiplier = 1f,
|
|
diceValues = DiceCheckUtility.ExtractValues(dice),
|
|
category = category
|
|
};
|
|
}
|
|
}
|
|
}
|