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 dice, CategoryDefinition category) { return new ScoreResult { baseScore = baseScore, flatBonus = 0, multiplier = 1f, diceValues = DiceCheckUtility.ExtractValues(dice), category = category }; } } }