using System; using UnityEngine; [CreateAssetMenu(fileName = "GameProperty", menuName = "ScriptableObject/Game/GameProperty")] public class GameProperty : ScriptableSingleton { [SerializeField] private Material playerCharacterMaterial; public Material PlayerCharacterMaterial => playerCharacterMaterial; [SerializeField] private float playerCharacterAttackRange = 3000000f; public float PlayerCharacterAttackRange => playerCharacterAttackRange; [SerializeField] private string characterLayerName = "Character"; public string CharacterLayerName => characterLayerName; [SerializeField] private string enemyTag = "Enemy"; public string EnemyTag => enemyTag; [SerializeField] private string playerTag = "Player"; public string PlayerTag => playerTag; [Header("Global")] [SerializeField] string gradeIconAtlasName = "atlasGradeIcon"; public string GradeIconAtlasName => gradeIconAtlasName; [SerializeField] string gradeLetterIconDefaultName = "atlasGradeLatterIcon"; public string GradeLetterIconDefaultName => gradeLetterIconDefaultName; [SerializeField] ColorPallete globalColorPallete; public ColorPallete GlobalColorPallete => globalColorPallete; [Header("GameMod")] [SerializeField] string gameModAtlasName = "atlasGameMod"; public string GameModAtlasName => gameModAtlasName; [Header("Mate")] [SerializeField] int mateMaxCount = 3; public int MateMaxCount => mateMaxCount; [SerializeField] Vector2 distRangeMateToPlayer = new Vector2(2f, 5f); public Vector2 DistRangeMateToPlayer => distRangeMateToPlayer; [SerializeField] float distFromPlayerWhenFirstMateSpawn = 3f; public float DistFromPlayerWhenFirstMateSpawn => distFromPlayerWhenFirstMateSpawn; [SerializeField] string mate2DImageDefaultName = "mate2dimage"; public string Mate2DImageDefaultName => mate2DImageDefaultName; [SerializeField] string mateSDImageAtlasName = "atlasMateSD"; public string MateSDImageAtlasName => mateSDImageAtlasName; [Header("Dispatch")] [SerializeField] string missionContentIconAtlasName = "atlasDispatchMissionContentIcon"; public string MissionContentIconAtlasName => missionContentIconAtlasName; [SerializeField] string areaImageAtlasName = "atlasDispatchAreaImage"; public string AreaImageAtlasName => areaImageAtlasName; [Header("Nationality")] [SerializeField] string nationalityIconAtlasName = "atlasNationalityIcon"; public string NationalityIconAtlasName => nationalityIconAtlasName; [Header("Skill")] [SerializeField] string skillIconAtlasName = "atlasSkillIcon"; public string SkillIconAtlasName => skillIconAtlasName; } public enum WorldArea { East, West, South, North, } [Serializable] public struct Nationality { public enum Kind { Loskan, Seint, Arkana, Count, } public Kind kind; public string NameKey => FormatString.StringFormat("nationality_{0}", kind); public string IconNameInAtals => kind.ToString(); public string IconAtlasName => GameProperty.Instance.NationalityIconAtlasName; }