Ajout d'instructions pour la configuration de la vague d'ennemi

Changé le nom de classe de LevelConfig vers WaveConfig afin d'éviter une confusion avec le LevelEditor
This commit is contained in:
Ader Alisma 01 2023-07-22 14:21:44 -04:00
parent d83f621c3e
commit b57efc49a8
8 changed files with 47 additions and 15 deletions

View File

@ -0,0 +1,22 @@
using UnityEditor;
namespace GatherAndDefend.LevelEditor
{
[CustomEditor(typeof(WaveConfig))]
public class WaveConfigCustomInspector : Editor
{
public override void OnInspectorGUI()
{
EditorGUILayout.HelpBox(@"How to use :
Créer élément de la liste ConstantSpawn.
Drag l'ennemi choisi dans Enemy et insérer le nombre à créer dans Count
Choisir la durée du jeux en terme de minutes dans GameDuration
L'intervalle de création est déterminé d'après la durée du jeux et le nombre d'ennemi à créer
Importante consideration :
- Il faut assigner au moins un ennemi avec un Count d'au moins 1 pour jouer.", MessageType.None);
base.OnInspectorGUI();
}
}
}

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 8c38e7df17e51a6448682caeaba0f29e
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -220,3 +220,4 @@ MonoBehaviour:
_renderLayer: Default _renderLayer: Default
_position: {x: 0, y: 0} _position: {x: 0, y: 0}
_scale: {x: 1, y: 1} _scale: {x: 1, y: 1}
_waveConfig: {fileID: 11400000, guid: 21b0f85f7c746974db1e72f2df646f5d, type: 2}

View File

@ -1,15 +1,15 @@
using System.Collections;
using System.Collections.Generic; using System.Collections.Generic;
using UnityEngine; using UnityEngine;
[CreateAssetMenu(menuName = "Gather And Defend/Levels/LevelConfig")] [CreateAssetMenu(menuName = "Gather And Defend/Levels/WaveConfig")]
public class LevelConfig : ScriptableObject public class WaveConfig : ScriptableObject
{ {
[SerializeField] [SerializeField]
private List<EnemyType> _constantSpawn = new List<EnemyType>(); private List<EnemyType> _constantSpawn = new List<EnemyType>();
[SerializeField] [SerializeField]
private float _gameDuration = 0; private float _gameDuration = 0;
public List<EnemyType> ConstantSpawn public List<EnemyType> ConstantSpawn
{ {
get get
{ {

View File

@ -1,4 +1,3 @@
using System.Collections;
using System.Collections.Generic; using System.Collections.Generic;
using UnityEngine; using UnityEngine;
@ -6,8 +5,8 @@ public class WaveObserver : Singleton<WaveObserver>
{ {
private List<SpawnerTile> _subjects = new List<SpawnerTile>(); private List<SpawnerTile> _subjects = new List<SpawnerTile>();
private List<int> _copyConstantSpawn; private List<int> _copyConstantSpawn;
private LevelConfig _levelConfig; private WaveConfig _levelConfig;
public LevelConfig LevelConfig public WaveConfig LevelConfig
{ {
set set
{ {
@ -29,14 +28,15 @@ public class WaveObserver : Singleton<WaveObserver>
public void NotifySpawned(SpawnerTile spawnerSubject) public void NotifySpawned(SpawnerTile spawnerSubject)
{ {
if (spawnerSubject.Prefab.Equals(_levelConfig.ConstantSpawn[0].GetEnemyObject())) GameObject paramPrefab = spawnerSubject.Prefab;
if (paramPrefab.Equals(_levelConfig.ConstantSpawn[0].GetEnemyObject()))
{ {
int currentCount = 0; int currentCount = 0;
for (int i = 0; i < _copyConstantSpawn.Count; i++) for (int i = 0; i < _copyConstantSpawn.Count; i++)
{ {
if(_levelConfig.ConstantSpawn[i].GetEnemyObject() == spawnerSubject.Prefab) if(_levelConfig.ConstantSpawn[i].GetEnemyObject() == paramPrefab)
{ {
currentCount = _copyConstantSpawn[i]--; currentCount = _copyConstantSpawn[i] - 1;
break; break;
} }
} }
@ -44,7 +44,7 @@ public class WaveObserver : Singleton<WaveObserver>
{ {
foreach (SpawnerTile spawner in _subjects) foreach (SpawnerTile spawner in _subjects)
{ {
if (spawner.Prefab.Equals(spawnerSubject.Prefab)) if (spawner.Prefab.Equals(paramPrefab))
{ {
spawner.StopSpawn(); spawner.StopSpawn();
} }

View File

@ -12,7 +12,7 @@ namespace GatherAndDefend.LevelEditor
[SerializeField] [SerializeField]
private List<TilemapData> _data = new List<TilemapData>(); private List<TilemapData> _data = new List<TilemapData>();
[SerializeField] [SerializeField]
private LevelConfig _waveConfig; private WaveConfig _waveConfig;
public void SaveFromTilemap(Tilemap tilemap) public void SaveFromTilemap(Tilemap tilemap)
{ {
var data = new TilemapData(); var data = new TilemapData();
@ -26,7 +26,7 @@ namespace GatherAndDefend.LevelEditor
data.LoadToTilemap(tilemap); data.LoadToTilemap(tilemap);
} }
public LevelConfig WaveConfig { get { return _waveConfig; } } public WaveConfig WaveConfig { get { return _waveConfig; } }
public IEnumerator<TilemapData> GetEnumerator() public IEnumerator<TilemapData> GetEnumerator()
{ {

View File

@ -1,5 +1,3 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine; using UnityEngine;
using System; using System;