24 Commits

Author SHA1 Message Date
35f0796ad1 Merge remote-tracking branch 'origin/main' into feature/waveEditor 2023-08-02 15:10:19 -04:00
Felix Boucher
b1cfb714a6 changer l'apparence du harvester
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)
2023-07-23 11:53:07 -04:00
d83f621c3e Merge remote-tracking branch 'origin/main' into feature/animationRecolte 2023-07-14 23:16:26 -04:00
cad2436773 Progrès WaveEditor
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
2023-07-14 23:15:18 -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
Felix Boucher
9889ca76a7 harvesters
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.
2023-07-13 12:40:37 -04:00
Felix Boucher
87622e8a69 oubli des universioned files 2023-07-11 15:52:43 -04:00
Felix Boucher
43bc2c75f2 work on game scene + fix bugs
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
2023-07-11 15:52:43 -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
482fc2c178 ResourceMaker déplace la ressource à ramasser vers un point fixe avant d'augmenter la quantité de ressources du joueur
ResourceTile produit des yields que lorsqu'une yield prefab a été déterminé
2023-06-23 14:53:21 -04:00
475ebbaac6 Correction des commentaires de PR
Déplacé énum RessourceChoice vers ResourceMaker

Retiré code commenté dans ResourceTile

Remplacé Awake pour Start dans ResourceMaker
2023-06-12 20:55:29 -04:00
4b756a5321 Corrigé conflit du merge
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
2023-06-11 19:37:29 -04:00
0c0add8f43 Augmenté la vitesse de production de ressource
Fix la zone de ramassage
2023-06-11 18:40:10 -04:00
1a45b9a1bb Ajout de ClickBehavior pour détecter le click sur les yields
LevelManager prefab comporte aussi ResourceManager et ClickBehavior

Modification de la vitesse de création des yields

Création des yields prefabs
2023-06-11 16:06:01 -04:00
8ecf5e0552 Ajout des Yield prefabs et de ResourceMaker
ResourceMaker détecte le click sur le Yield

Les yields font partis du ResourceTile
2023-06-11 10:45:01 -04:00
Felix Boucher
d4f32e439f working save / load functions
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.
2023-05-28 01:52:44 -04:00
Felix Boucher
4fbce56853 travail sur le save et le load
problème : pas de moyen de sauvegarder et de charger les niveaux entamés

solution : fonctions save et load dans le LevelManager
2023-05-27 20:38:43 -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
1bf7e04798 made LevelObject and Tile methods virtual
problème : le fait que les méthodes update/start/destroy etc des ILevelObject soit abstraites était restreignant (obligation de override)

solution : j'ai rendu les méthodes virtuelles à la place de abstraites.
2023-05-27 20:38:42 -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 Boucher
dec5aeb857 ajouter la tile directement au LevelManager
au lieu d'ajouter une classe data intermédiaire.

l'idée est que ça rend les modifications complexes d'avoir un intermédiaire. Autant ajouter la tuile direct.
2023-05-20 23:27:43 -04:00
Felix Boucher
c7132af42f retiré debug servant à tester 2023-05-20 22:51:56 -04:00
Felix Boucher
22abe69340 tidy up level manager related scripts
scripts were not classified

created a LevelManager folder in the scripts folder
2023-05-20 22:42:03 -04:00