18 Commits

Author SHA1 Message Date
Felix Boucher
8adc563d47 make transition fool proof
problème :
Il y avait plusieurs manières de faire planter le loading screen en appuyant sur des boutons

changements:
- turn off buttons when loading screen is active
- turn on buttons when loading screen is not active
- add event aggregator class to project and migrate every event to it
- fix bugs and regressions
2023-10-09 22:21:06 -04:00
Felix Boucher
f9a54513cd repair camera calibrating + finish adding configs 2023-10-01 21:50:15 -04:00
Felix Boucher
ef6b345a03 added some doc + some global configs 2023-10-01 21:50:12 -04:00
Felix Boucher
9e07c48fd4 ajout de transition avant de loader le level
besoin :

- le level était loadé directement au moment de cliquer dans le level selector ce qui n'est pas très fenshui

solution :

- fade out avec nuages
- les tuiles tombent à leur place au lieu d'apparaitre toutes en même temps
2023-10-01 21:48:35 -04:00
35f0796ad1 Merge remote-tracking branch 'origin/main' into feature/waveEditor 2023-08-02 15:10:19 -04:00
Felix Boucher
27d72368aa 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
2023-07-23 20:16:44 -04:00
b57efc49a8 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
2023-07-22 14:21:44 -04:00
d75a1ec747 Progrès WaveEditor
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
2023-07-14 19:44:07 -04:00
15b5976cb0 Debut Wave Editor
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
2023-07-09 18:59:37 -04:00
Felix Boucher
6c96d31544 sauvegarder la position / échelle locale
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
2023-06-15 12:56:16 -04:00
Felix Boucher
102f646340 center GOs without offsetting them
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.
2023-06-06 14:46:33 -04:00
Felix Boucher
86cb9280b4 drag and drop 2023-06-03 09:35:13 -04:00
Felix Boucher
8b5d0370dc tidied up + addressed issue with non-LevelTiles
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.
2023-05-28 22:00:47 -04:00
Felix Boucher
08c9171262 some tidying up
plusieurs scripts ne semblaient pas au bon endroit. Je les ai donc réorganisé un peu.
2023-05-27 20:38:43 -04:00
Felix Boucher
ef8a70aba4 finish to hijack update loop + serialization
problem : tiles dont have an update loop, neither do they have a start / destroy method

solution : finished working on a way to create a custom start/update/destroy pipeline for the projects custom tiles. it's using LevelManagerScript as to Update.

note : also created a database and a start of serialization system so we can save and load stuff.
2023-05-27 20:38:42 -04:00
Felix Boucher
d10677db6d tweaks to LevelManager
le fait qu'il faille updater des tiles du tilemap posait un réel problème

création d'un système d'héritage pour que les game objects et les tiles puissent cohabiter dans une même game loop

- ILevelObject contient des fonctions de start, de destroy, d'update, d'égalité et une position

- LevelTile et LevelObject héritent de ILevelObject et peuvent être hérité par des tiles ou des MonoBehaviours.

- le level manager est un monobehaviour singleton qui update tous les ILevelObjects à chaque frame.
2023-05-27 20:38:42 -04:00
Felix-gabriel Boucher-luneau
fe7485f815 Pull request #7: ranger les scripts du LevelEditor
Merge in CGD/gather-and-defend from maintenance/tidyUpRepo to main

* commit '5347f2c3fff0fbac0807beb259f6b440dea16e37':
  ranger les scripts du LevelEditor
2023-05-24 17:10:07 +00:00
Felix Boucher
5347f2c3ff ranger les scripts du LevelEditor
puisqu'on utilise des assembly definitions maintenant, il est important que les scripts soient posés dans le dossier Scripts pour qu'ils soient accessibles aux autres scripts. Il a donc fallu déplacer les scripts se trouvant dans le dossier LevelEditor.
2023-05-22 23:13:17 -04:00