diff --git a/Assets/Scripts/Data/Data.cs b/Assets/Scripts/Data/Data.cs index fcaba869..71e8a4d3 100644 --- a/Assets/Scripts/Data/Data.cs +++ b/Assets/Scripts/Data/Data.cs @@ -27,12 +27,28 @@ namespace Data private ItemsData _itemsData; [SerializeField] private string aiDataPath = "AIData"; private AIData _aiData; + [SerializeField] private string wariorsDataPath = "WariorsData"; + private WariorsData _wariorsData; + [SerializeField] private string chosenWeaponDataPath = "ChosenWeapon.json"; private string pathToLevel => "Data/" + levelName + "/"; public Weapon ChosenWeapon => WeaponsData.WeaponsList[int.Parse(File.ReadAllText(Application.persistentDataPath + "/" + chosenWeaponDataPath))]; + public WariorsData WariorsData + { + get + { + if (_wariorsData == null) + { + _wariorsData = Load(pathToLevel + wariorsDataPath); + } + + return _wariorsData; + } + } + public AIData AIData { get diff --git a/Assets/Scripts/Data/WariorsData.cs b/Assets/Scripts/Data/WariorsData.cs new file mode 100644 index 00000000..71fb0ce4 --- /dev/null +++ b/Assets/Scripts/Data/WariorsData.cs @@ -0,0 +1,30 @@ +using System; +using System.Collections.Generic; +using Sirenix.OdinInspector; +using UnityEngine; +using Weapons; + +namespace Data +{ + [CreateAssetMenu(fileName = "WariorsData", menuName = "Data/Wariors data")] + public class WariorsData : ScriptableObject + { + [SerializeField] private List _wariors; + } + + [Serializable] + public struct WariorInfo + { + [SerializeField] private GameObject prefab; + [SerializeField] private WariorType Type; + [SerializeField, ShowIf("hasWeapon")] private Weapon _weapon; + private bool hasWeapon => Type != WariorType.Defence; + } + + public enum WariorType + { + Attack, + Defence, + Both + } +} \ No newline at end of file diff --git a/Assets/Scripts/Data/WariorsData.cs.meta b/Assets/Scripts/Data/WariorsData.cs.meta new file mode 100644 index 00000000..48657ad2 --- /dev/null +++ b/Assets/Scripts/Data/WariorsData.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 8c901c6adaad405f8e9c000e0bf91391 +timeCreated: 1645705044 \ No newline at end of file diff --git a/Assets/Scripts/Editor/LevelSettings.cs b/Assets/Scripts/Editor/LevelSettings.cs index 65c22bea..a75f0a70 100644 --- a/Assets/Scripts/Editor/LevelSettings.cs +++ b/Assets/Scripts/Editor/LevelSettings.cs @@ -104,7 +104,8 @@ namespace Editor Bonus, Building, CaptureAbility, - SpecialWeapon + SpecialWeapon, + SwitchingPlaces } [Serializable] internal class NewItem @@ -121,6 +122,7 @@ namespace Editor ItemType.Building => CreateInstance(), ItemType.CaptureAbility => CreateInstance(), ItemType.SpecialWeapon => CreateInstance(), + ItemType.SwitchingPlaces => CreateInstance(), _ => throw new ArgumentOutOfRangeException(nameof(Type), Type, null) }; AssetDatabase.CreateAsset(item,$"Assets/Resources/Data/Items/{ItemName}.asset"); @@ -143,7 +145,8 @@ namespace Editor CreateInstance(), CreateInstance(), CreateInstance(), - CreateInstance() + CreateInstance(), + CreateInstance() }; } diff --git a/Assets/Scripts/Units/Wariors.meta b/Assets/Scripts/Units/Wariors.meta new file mode 100644 index 00000000..d5f614ec --- /dev/null +++ b/Assets/Scripts/Units/Wariors.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: c39a83adab894ac79b260b9ab757356a +timeCreated: 1645704769 \ No newline at end of file diff --git a/Assets/Scripts/Units/Wariors/Warior.cs b/Assets/Scripts/Units/Wariors/Warior.cs new file mode 100644 index 00000000..86e23e5f --- /dev/null +++ b/Assets/Scripts/Units/Wariors/Warior.cs @@ -0,0 +1,16 @@ +using HexFiled; +using UnityEngine; + +namespace Units.Wariors +{ + public class Warior + { + private GameObject _instance; + + + public GameObject Spawn(HexCell cell) + { + + } + } +} \ No newline at end of file diff --git a/Assets/Scripts/Units/Wariors/Warior.cs.meta b/Assets/Scripts/Units/Wariors/Warior.cs.meta new file mode 100644 index 00000000..c32d044e --- /dev/null +++ b/Assets/Scripts/Units/Wariors/Warior.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 16ac3c8b97b647a983f0e87a2b0a56c9 +timeCreated: 1645704779 \ No newline at end of file