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)
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
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
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 :
- 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
problems :
- there were no test scene
- units would appear weird over some tiles
- units would not recognize some tiles when trying to know if it could place itself on it
solution :
- added test scene
- tweaked sorting layers in units
- added IsCollidable parameter in ILevelObject
problème : créer un placeholder par unit allait être un sale hassle
solution : maintenant, le placeholder est créé dynamiquement
note : also, j'ai ajouté un système pour ajouter des tiles
problème : les game objects sont offsettés de (-.5, -.5) par rapport aux tiles
contrainte : on ne veut pas changer l'ancrage des game objects ou des tiles
solution : changer le point d'ancrage des tilemaps à la place. Cela peut se faire automatiquement à la création du niveau.
problèmes :
- mon code et l'arrangement des fichiers avait besoin d'un peu de tidy up
- les tiles qui n'étaient pas des LevelTile ne loadaient pas
solution :
- rangé un peu + respecté structure une classe - un fichier
- tenté un build pour voir si tout roulait comme il faut, ce qui m'a porté à ajouter des directives de preprocessing et à bouger les custom inspectors dans le dossier Editor.
- ajouté une représentation simple des tuiles non-LevelTile dans la sauvegarde.