Files
trail-into-darkness/Assets/Code/GameState/Entities/StarterCharacterSettings.cs
2026-04-05 17:42:29 +02:00

53 lines
1.7 KiB
C#

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;
}
}