diff --git a/Assets/LevelConfig.meta b/Assets/LevelConfig.meta new file mode 100644 index 0000000..b7bd07b --- /dev/null +++ b/Assets/LevelConfig.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b3ad07c069cd06e4ebbd5f190b9aa25b +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/LevelConfig.meta b/Assets/Scripts/LevelConfig.meta new file mode 100644 index 0000000..f06a54d --- /dev/null +++ b/Assets/Scripts/LevelConfig.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a386aeb53fe226d41bbee33ac6fafa4e +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/LevelConfig/LevelConfig.cs b/Assets/Scripts/LevelConfig/LevelConfig.cs new file mode 100644 index 0000000..02e5054 --- /dev/null +++ b/Assets/Scripts/LevelConfig/LevelConfig.cs @@ -0,0 +1,16 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +[CreateAssetMenu(menuName = "Gather And Defend/Levels/LevelConfig")] +public class LevelConfig : ScriptableObject +{ + //IEnumerable for 1. list of type 2. timer. with title of row nbr INSPIRED FROM DATA + [SerializeField] + private List _constantSpawn = new List(); + [SerializeField] + private int _gameDuration = 0; + public List ConstantSpawn { get { return _constantSpawn; } } + public int GameDuration { get { return _gameDuration; } } + +} diff --git a/Assets/Scripts/LevelConfig/LevelConfig.cs.meta b/Assets/Scripts/LevelConfig/LevelConfig.cs.meta new file mode 100644 index 0000000..4c684ab --- /dev/null +++ b/Assets/Scripts/LevelConfig/LevelConfig.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: eb0795e326609f0499365f5b65c2b5cd +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/LevelEditor/Level.cs b/Assets/Scripts/LevelEditor/Level.cs index 73d7bb8..fe4463b 100644 --- a/Assets/Scripts/LevelEditor/Level.cs +++ b/Assets/Scripts/LevelEditor/Level.cs @@ -11,6 +11,8 @@ namespace GatherAndDefend.LevelEditor public Rect Bounds => _bounds; [SerializeField] private List _data = new List(); + [SerializeField] + private LevelConfig _levelConfig; public void SaveFromTilemap(Tilemap tilemap) { var data = new TilemapData(); @@ -21,8 +23,8 @@ namespace GatherAndDefend.LevelEditor { var data = _data.Find(x => x.Key == tilemap.name); if (data == null) return; - - data.LoadToTilemap(tilemap); + + data.LoadToTilemap(tilemap, _levelConfig); } public IEnumerator GetEnumerator() diff --git a/Assets/Scripts/LevelEditor/TilemapData.cs b/Assets/Scripts/LevelEditor/TilemapData.cs index d0e20c7..68b0f17 100644 --- a/Assets/Scripts/LevelEditor/TilemapData.cs +++ b/Assets/Scripts/LevelEditor/TilemapData.cs @@ -33,7 +33,7 @@ namespace GatherAndDefend.LevelEditor public string Key => _key; - public void LoadToTilemap(Tilemap reference) + public void LoadToTilemap(Tilemap reference, LevelConfig _levelConfig = null) { reference.transform.localPosition = _position; reference.transform.localScale = _scale; @@ -48,10 +48,22 @@ namespace GatherAndDefend.LevelEditor collision.isTrigger = _isTrigger; } - + Debug.Log(_levelConfig != null); + if ( _levelConfig != null && _key.Equals("Spawners")) + { + foreach (TileData spawner in _tiles) + { + //string id = spawner.Tile.GetInstanceID().ToString(); + //SpawnerTile spawnerGO = GameObject.Find(id).GetComponent(); + //spawnerGO.Prefab = _levelConfig.ConstantSpawn[0].GetEnemyObject(); + Debug.Log("____GODLIKE____"); + } + } foreach (TileData data in _tiles) { reference.SetTile(data.Position, data.Tile); + Debug.Log(_key.ToString()); + } } /// diff --git a/Assets/Scripts/Opponent/EnemyType.cs b/Assets/Scripts/Opponent/EnemyType.cs new file mode 100644 index 0000000..d32109f --- /dev/null +++ b/Assets/Scripts/Opponent/EnemyType.cs @@ -0,0 +1,31 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using System; + + +[Serializable] +public class EnemyType +{ + [SerializeField] + private Opponent _enemy; + [SerializeField] + private int _count; + + public int GetEnemyToughness() + { + float toughness = Mathf.Round((_enemy.Hp / 10) + _enemy.AttackDamage / 2); + return (int)toughness; + } + + public GameObject GetEnemyObject() + { + return _enemy.gameObject; + } + + public int GetEnemyCount() + { + return _count; + } + +} diff --git a/Assets/Scripts/Opponent/EnemyType.cs.meta b/Assets/Scripts/Opponent/EnemyType.cs.meta new file mode 100644 index 0000000..981da41 --- /dev/null +++ b/Assets/Scripts/Opponent/EnemyType.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: a747157705819b94499ad98134da8f88 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/PlayerAction/ClickBehavior.cs b/Assets/Scripts/PlayerAction/ClickBehavior.cs index 99d0ad0..a48c486 100644 --- a/Assets/Scripts/PlayerAction/ClickBehavior.cs +++ b/Assets/Scripts/PlayerAction/ClickBehavior.cs @@ -9,7 +9,7 @@ public class ClickBehavior : MonoBehaviour if (Input.GetMouseButton(0)) { Vector2 clickPoint = Camera.main.ScreenToWorldPoint(Input.mousePosition); - RaycastHit2D hit = Physics2D.Raycast(clickPoint, transform.up); + RaycastHit2D hit = Physics2D.Raycast(clickPoint, transform.up, 0.0f); if (hit.collider != null) { if (hit.collider.CompareTag("Resource")) diff --git a/Assets/Scripts/Tiles/SpawnerTile.cs b/Assets/Scripts/Tiles/SpawnerTile.cs index d281933..1646d21 100644 --- a/Assets/Scripts/Tiles/SpawnerTile.cs +++ b/Assets/Scripts/Tiles/SpawnerTile.cs @@ -61,4 +61,8 @@ public class SpawnerTile : LevelTile _lifetime = dict[nameof(_lifetime)].ToFloat(); _spawnOnStart = dict[nameof(_spawnOnStart)].ToBool(); } + + public GameObject Prefab { set { + Debug.Log("Changed"); + _prefab = value; } } } \ No newline at end of file