Merge in CGD/gather-and-defend from feature/integrateLevelSelector to main
* commit '9696ee614e4666d93da40bcec686e87ac6a30559':
spawners n'apparaissent plus + beau back button
finish integrating level selector
Level selector was already working after work by William but some small bugs remained to be fixed + it wasn't possible to return to level selector once we were in the level.
- it's now possible to go back to level selector from Level
- LevelManagerScript is no longer a singleton (this way, it resets with the Game scene unloading)
- Added a property drawer for using scene files in inspectors
problème :
- le harvester avait une apparence non-changeante dépendant du genre de ressource sur lequel il était placé.
solution :
- ajouter une logique qui change le prefab choisi dépendant de sur quelle tuile on place le harvester.
- also, quelques micro refactorings (changement de noms, ajout de doc)
WaveObserver gère le nombre d'ennemi à créer et assure d'arreter la création d'ennemis supplémentaires.
SpawnerTile détermine un intervalle aléatoire automatiquement après chaque création d'ennemi. La première intervalle a plus de chance d'être plus courte que les intervalles suivantes.
Config01 est le scriptable object de type LevelConfig
Suppression de commentaires de tests
WaveObserver donne aux spawners les unités à instancier ainsi que l'intervalle de création de ceux-ci
LevelConfig passe de Level vers LevelManager puis il est utilisé dans l'instance de WaveObserver
problème : il faut que les resource tiles produisent des resources seulement quand elles ont une unité au dessus d'elles pour les harvester.
solution : créer une classe harvester qui est vérifiée par la resource tile avant d'updater. Si aucun harvester n'est au dessus, aucune update n'est faite.
problems :
- game scene was not as shown in the GDD
- problem when moving tilemap (the placeholders didn't follow)
- possible to place units outside the game area
solutions :
- try to make the game scene as close to the gdd as possible
- don't move the tilemap : move the camera instead (this keeps the world position of tilemap intact)
- there was a logic bug in the DraggablePlaceholder. It ain't anymore
problème :
- la scène game n'avait pas toute les dernières features créées
solution :
- ajouté LevelManager, boutons d'ajout d'unités, labels de resources
Merge in CGD/gather-and-defend from animation_unites to main
* commit 'e44264d66f2068dc53f341e5bb19684e2e3409db':
ajout event animation, ajout classe Root qui sert de transition entre la classe Entity et l'animator.
correction du merge request
no message
animations walk/idle/death/move working
LevelConfig cnotient la liste des ennemies à spawn à un rythme constant ainsi que la durée du jeux
EnemyType contient l'ennemi ainsi que la quantité à SpawnerTile
Modifications de Level et TilemapData afin d'accéder aux paramètres des Spawners du jeu
Merge in CGD/gather-and-defend from feature/retirerLimiteRessource to main
* commit '3bf9dae1211a5ad8d4a819a7479726af7aa8581f':
retirer limite resources
problème : le placeholder apparait au milieu de la map random quand on clique sur le bouton de création d'unité
solution : ne pas permettre de placer l'unité quand on est à l'extérieur de la zone de jeu + ne pas la faire apparaitre.
Ajout d'arrière-plan à l'affichage des ressources dans la scène TestDragAndDrop
Déterminé une destination fixe réaliste pour les yields
Suppression du Meat tile pour éviter une redondance avec le Farm tile
Merge in CGD/gather-and-defend from feature/DragNDrop/costResourceForUnitCreation to main
* commit '43f4c6a39e38be7ecdf1de939a0ef608b93ede94':
Linked resource management to unit creation
Problem :
Les unités et bâtiments ne coutaient rien à construire
Solution :
J'ai link le système de drag and drop au resource manager.
Note :
J'ai déshérité le ResourceManager de MonoBehaviour aussi, vu que c'est pas une fonctionalité qui nécessite d'être updaté par frame vraiment, c'est plus du stockage.
J'ai testé dans l'éditeur et tout semble fonctionel *fingers crossed*
problème : quand on load un niveau, les tilemaps sont toujours reset à position = (0,0,0) et scale = (1,1,1).
solution : sauvegarder la position et l'échelle locale des tilemaps
problem : spelling errors and lisibility issues with some parts of the code
solution :
- used GetAllComponents generic nature to eliminate the need for casting
- cached sprite renderers in the Placeholder
- put hardcoded string in a const variable
problème :
- le range d'attaque n'apparaissait pas sur le placeholder des unités
- le outline ne fonctionnait pas bien sur toutes les unités
- le placeholder étant opaque, on ne pouvait pas voir la tuile en dessous
solutions :
- utiliser les bounds du collider de détection pour tracer le range des unités sur le placeholder
- utiliser un shader pour tracer un outline colorable autour des unités
- rendre le placeholder plus transparent