using System; using UnityEngine; using Random = UnityEngine.Random; namespace Nox.Game { [CreateAssetMenu(fileName = "CharacterBaseSettings", menuName = "Nox/Database/Entities/CharacterBaseSettings")] public class StarterCharacterSettings: ScriptableObject { [Header("Character Creation Defaults")] public DistributionPointsPerClass[] distributionPointsPerClass; public EntityAttributes defaultEntityAttributes; public EntityStats defaultEntityStats; public PerksData defaultPerksData; public ModifiersData defaultModifiersData; [Header("General Racial Bonuses and Perks per Class")] public CharacterRace race; public CharacterClass @class; public RacialBonuses [] racialBonuses; public ClassBonuses [] classBonuses; private void OnEnable() { race = (CharacterRace)Random.Range(0, Enum.GetNames(typeof(CharacterRace)).Length-1); @class = (CharacterClass)Random.Range(0, Enum.GetNames(typeof(CharacterClass)).Length-1); } } [Serializable] public sealed class RacialBonuses { public CharacterRace race; public EntityAttributes bonusAttributes; public EntityStats bonusStats; public PerksData startingPerks; public ModifiersData permanentModifiers; } [Serializable] public sealed class ClassBonuses { public CharacterClass @class; public EntityAttributes bonusAttributes; public EntityStats bonusStats; public PerksData startingPerks; public ModifiersData permanentModifiers; } [Serializable] public sealed class DistributionPointsPerClass { public CharacterClass @class; public int points; } }