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
Ajout de YieldTile dans la scène de TestDragAndDrop
Ajout de Meat pour le yield de nourriture afin de séparer Farm
Ajusté ResourceTile pour toujours produire des ressources à moins que YieldSpeed est égal à 0
- Régler le problème où les icônes sur la carte ne s'affichait pas correctement;
- Ajout d'une condition pour empêcher l'utilisateur de selectionner un s'il est vérouillé.
logic was supposed to allow placing object on farms, which it didn't
now it does.
+ changed ObjectPlaceholder's name so it follows the TilePlaceholder's convention
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ème : Le level manager n'était pas notified quand un objet ou une tile était enlevée du niveau
solution : LevelTile et LevelObject gèrent l'effaçage avec RefreshTile et OnDestroy.
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.
problème : le save et le load fonctionnait avec un string en mémoire
solution : créer un fichier save.txt dans les assets quand on sauvegarde, et lire de ce fichier quand on load.
problème : au moment de load une save, les tiles qui spawnaient des GameObjects au start les spawnaient malgré qu'ils l'avait déjà spawné dans la dernière session de jeu + problèmes de sérialisation divers
solution : spawner le GameObject seulement si le lifetime de la tile est de zéro. correction des différents problèmes de sérialisation.
note : les tiles ne semblent vraiment pas être faites pour avoir une update loop. mais bon, maintenant ça marche.