Skip to content

feat: Add dynamic environment interaction system and new events#13

Merged
AyakorK merged 1 commit intodevelopfrom
feature/gameTracker
Oct 22, 2024
Merged

feat: Add dynamic environment interaction system and new events#13
AyakorK merged 1 commit intodevelopfrom
feature/gameTracker

Conversation

@Thomlam
Copy link
Copy Markdown
Contributor

@Thomlam Thomlam commented Oct 22, 2024

  • Implement player interaction system with the environment
  • Add dynamic room system:
    • Events now added based on room number and corridor-specific stages
    • Dynamic event generation based on the current floor
  • New events added:
    • "Blacksmith"
    • "Altar" event allowing players to take one item
  • Introduced IsCorridor detection system for dynamic instantiation and removal of corridor events
  • Enhance item saving system to persist data across rooms, including inventory, dialogues, and more
  • Implement full inventory system
  • Add multiple UI elements, animations, and canvas for visual feedback
  • Add Timer and Stage system

Summary by CodeRabbit

  • Nouvelles Fonctionnalités

    • Ajout de nouveaux points de spawn pour le Blacksmith et l'Altar dans le système de salle.
    • Introduction d'un nouveau Prefab pour l'Altar, permettant des interactions avec les joueurs.
    • Ajout d'un Prefab pour le Forgeron, enrichissant les interactions possibles dans le jeu.
  • Améliorations

    • Mise à jour de la gestion des dialogues et des interactions avec les personnages non-joueurs.
    • Amélioration de la gestion des données de jeu avec des classes pour le suivi des interactions et des états.
  • Corrections de Bugs

    • Ajustements dans la logique de déclenchement des événements de salle pour améliorer la fluidité du jeu.

- Implement player interaction system with the environment
- Add dynamic room system:
  - Events now added based on room number and corridor-specific stages
  - Dynamic event generation based on the current floor
- New events added:
  - "Blacksmith"
  - "Altar" event allowing players to take one item
- Introduced IsCorridor detection system for dynamic instantiation and removal of corridor events
- Enhance item saving system to persist data across rooms, including inventory, dialogues, and more
- Implement full inventory system
- Add multiple UI elements, animations, and canvas for visual feedback
@Thomlam Thomlam requested a review from AyakorK October 22, 2024 03:57
@Thomlam Thomlam self-assigned this Oct 22, 2024
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Oct 22, 2024

Walkthrough

Les modifications apportées dans cette demande de tirage incluent l'ajout de nouveaux objets de jeu et de fichiers de métadonnées dans le système de salle du projet Unity. Des préfabriqués tels que Altar et Forgeron ont été créés, chacun avec des composants spécifiques pour gérer les interactions du joueur. Le fichier GameData a été introduit pour gérer les données de jeu, tandis que des classes comme GameDataManager et GameTracker ont été ajoutées pour gérer la sauvegarde et le suivi des événements de jeu. De plus, des ajustements ont été effectués dans des scènes existantes, mettant à jour les objets de jeu et leurs propriétés.

Changes

Fichier Résumé des modifications
Assets/Prefabs/RoomSystem/Corridor/CorridorX7.prefab Ajout de BlacksmithSpawnPoint et AltarSpawnPoint, réorganisation de la hiérarchie des objets.
Assets/Prefabs/RoomSystem/CorridorEvent.meta Création d'un fichier de métadonnées pour CorridorEvent.
Assets/Prefabs/RoomSystem/CorridorEvent/Altar.prefab Création d'un nouveau préfabriqué Altar avec plusieurs composants.
Assets/Prefabs/RoomSystem/CorridorEvent/Altar.prefab.meta Création d'un fichier de métadonnées pour Altar.prefab.
Assets/Prefabs/RoomSystem/CorridorEvent/AltarAnims.meta Création d'un fichier de métadonnées pour AltarAnims.
Assets/Prefabs/RoomSystem/CorridorEvent/AltarAnims/Altar.anim Création d'un nouveau clip d'animation Altar.anim.
Assets/Prefabs/RoomSystem/CorridorEvent/AltarAnims/Altar.anim.meta Création d'un fichier de métadonnées pour Altar.anim.
Assets/Prefabs/RoomSystem/CorridorEvent/AltarAnims/Altar_Totem.controller Création d'un nouveau contrôleur d'animation pour Altar_Totem.
Assets/Prefabs/RoomSystem/CorridorEvent/AltarAnims/Altar_Totem.controller.meta Création d'un fichier de métadonnées pour Altar_Totem.controller.
Assets/Prefabs/RoomSystem/CorridorEvent/Forgeron.prefab Création d'un nouveau préfabriqué Forgeron avec plusieurs composants.
Assets/Prefabs/RoomSystem/CorridorEvent/Forgeron.prefab.meta Création d'un fichier de métadonnées pour Forgeron.prefab.
Assets/Prefabs/RoomSystem/CorridorEvent/ForgeronAnims.meta Création d'un fichier de métadonnées pour ForgeronAnims.
Assets/Prefabs/RoomSystem/CorridorEvent/ForgeronAnims/Forgeron.anim Création d'un nouveau clip d'animation Forgeron.anim.
Assets/Prefabs/RoomSystem/CorridorEvent/ForgeronAnims/Forgeron.anim.meta Création d'un fichier de métadonnées pour Forgeron.anim.
Assets/Scenes/DevRoom.unity Ajout de nouveaux objets de jeu et modifications des propriétés existantes.
Assets/Scripts/GameData.cs Création d'une classe GameData pour gérer les données du jeu.
Assets/Scripts/GameDataManager.cs Création d'une classe GameDataManager pour gérer la sauvegarde et le chargement des données.
Assets/Scripts/GameTracker.cs Création d'une classe GameTracker pour gérer les étapes du jeu et les événements.
Assets/Scripts/Map Control/DoorSystem.cs Ajout de nouvelles logiques liées à GameTracker.
Assets/Scripts/Map Control/RoomSystem/Altar.cs Création d'une classe Altar pour gérer les interactions avec l'autel.
Assets/Scripts/Map Control/RoomSystem/Interface/InteractableObject.cs Création d'une classe abstraite InteractableObject pour les objets interactifs.
Assets/Scripts/Player/Player.cs Création d'une classe Player pour gérer l'inventaire du joueur.

Poem

Dans un couloir, un forgeron,
Avec son autel, il fait le frisson.
Des objets brillants, des quêtes à l'horizon,
Les rongeurs dansent, remplis de passion!
Avec des données à sauvegarder,
Le jeu s'éveille, prêt à jouer! 🐇✨


Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 37

🧹 Outside diff range and nitpick comments (19)
Assets/Scripts/Player/Player.cs (1)

1-28: Résumé de la revue : Bonne base avec des opportunités d'amélioration.

La classe Player fournit une bonne base pour la gestion de l'inventaire du joueur. Voici un résumé des points clés et des suggestions d'amélioration :

  1. La structure générale de la classe est bonne et suit les conventions Unity.
  2. L'encapsulation de l'inventaire pourrait être améliorée pour un meilleur contrôle des accès.
  3. Considérez l'utilisation d'une classe Item personnalisée pour une meilleure extensibilité.
  4. La méthode AddItemToInventory pourrait bénéficier d'une simplification et de l'ajout de logs.
  5. La méthode HasItem est bien implémentée.

Prochaines étapes suggérées :

  • Implémentez les améliorations proposées pour l'encapsulation et la robustesse.
  • Ajoutez des tests unitaires pour valider le comportement de la classe.
  • Considérez l'ajout de fonctionnalités supplémentaires comme la suppression d'items ou la gestion de la capacité de l'inventaire.
Assets/Prefabs/RoomSystem/CorridorEvent/AltarAnims/Altar_Totem.controller (1)

29-50: Configuration de l'AnimatorController approuvée avec suggestion.

La configuration de l'AnimatorController "Altar_Totem" est correcte pour une animation simple. Cependant, envisagez d'ajouter des paramètres d'animation pour une flexibilité future, permettant des comportements plus complexes si nécessaire.

Assets/Scripts/Map Control/RoomSystem/PNJ/BlackSmith/Blacksmith.cs (1)

1-1: Supprimez l'importation inutilisée.

L'importation de System.Diagnostics n'est pas utilisée dans le code et peut être supprimée.

Assets/Resources/CorridorEventsRessources/Idle Adding.png.meta (2)

7-17: Les paramètres de mipmap sont appropriés pour une sprite 2D.

La désactivation des mipmaps (enableMipMap: 0) est correcte pour les sprites 2D et permet d'économiser de la mémoire. Cependant, les autres paramètres liés aux mipmaps pourraient être supprimés pour plus de clarté, car ils n'ont pas d'effet lorsque les mipmaps sont désactivés.

Vous pourriez envisager de supprimer les lignes 16-17 pour simplifier le fichier :

-    mipMapFadeDistanceStart: 1
-    mipMapFadeDistanceEnd: 3

18-68: Les propriétés de la texture sont bien configurées pour une sprite 2D.

Les paramètres sont généralement appropriés pour une sprite 2D dans un jeu Unity. La texture non lisible (isReadable: 0) est bonne pour les performances, sauf si une modification en temps réel est nécessaire.

Cependant, le format de texture RGBA32 (textureFormat: 1) pourrait être optimisé. Selon le contenu de votre sprite, vous pourriez envisager d'utiliser un format compressé comme ASTC, ETC2, ou BC pour réduire la taille de la texture et améliorer les performances, surtout sur les appareils mobiles. Par exemple :

-  textureFormat: 1
+  textureFormat: 47  # ASTC_6x6 (ou un autre format compressé approprié)

Assurez-vous de tester la qualité visuelle après ce changement pour trouver le meilleur équilibre entre la taille du fichier et la qualité visuelle.

Assets/Scripts/Player/PlayerController.cs (2)

27-28: Bonne addition du champ Player.

L'ajout du champ player est une bonne pratique pour la séparation des responsabilités. Cela permettra de gérer les données spécifiques au joueur de manière plus modulaire.

Considérez l'ajout d'un commentaire XML pour documenter le rôle de ce champ :

/// <summary>
/// Référence au composant Player gérant les données spécifiques au joueur.
/// </summary>
private Player player;

Line range hint 1-165: Résumé de la revue et suggestions pour les prochaines étapes

Les modifications apportées à PlayerController.cs introduisent une intégration avec un nouveau composant Player. C'est une bonne étape vers une meilleure séparation des responsabilités dans le code.

Suggestions pour la suite :

  1. Complétez l'intégration du composant Player en l'utilisant dans les méthodes pertinentes de PlayerMovement.
  2. Mettez à jour la documentation de la classe pour refléter ces changements.
  3. Assurez-vous que tous les tests unitaires existants passent toujours et ajoutez de nouveaux tests si nécessaire.
  4. Considérez la création d'une interface IPlayer pour faciliter les tests et permettre une meilleure extensibilité à l'avenir.
Assets/Resources/CorridorEventsRessources/Idle Working.png.meta (2)

109-289: Configuration correcte du sprite sheet avec suggestion d'amélioration

La configuration du sprite sheet est bien réalisée :

  • 8 sprites de 32x32 pixels sont correctement définis.
  • La convention de nommage est cohérente ("Idle Working_0" à "Idle Working_7").

Suggestion d'amélioration : Si le gameplay le nécessite, envisagez d'ajouter des formes de collision personnalisées pour chaque sprite. Actuellement, aucune forme physique personnalisée n'est définie (voir les tableaux physicsShape vides).


290-303: Métadonnées correctement configurées avec possibilité d'extension

La table de correspondance des noms de fichiers et des ID est correctement définie, ce qui facilitera le référencement des sprites dans Unity.

Suggestion : Si des scripts personnalisés nécessitent des métadonnées supplémentaires, envisagez d'utiliser le champ userData (ligne 301) pour stocker ces informations. Cela pourrait être utile pour des comportements spécifiques liés à cette animation d'inactivité.

Assets/Resources/CorridorEventsRessources/Decorations.png.meta (1)

109-408: Vérifiez la convention de nommage des sprites.

La configuration de la feuille de sprites est correcte et détaillée. Cependant, envisagez de revoir la convention de nommage des sprites (actuellement Decorations_0, Decorations_1, etc.) pour s'assurer qu'elle est cohérente avec les standards du projet et qu'elle fournit suffisamment de clarté pour les développeurs utilisant ces sprites.

Suggestion : Utilisez des noms plus descriptifs comme "Decorations_Altar", "Decorations_Torch", etc., si applicable, pour améliorer la lisibilité et la maintenance du code.

Assets/Scripts/Map Control/RoomSystem/Interface/InteractableObject.cs (2)

5-5: Ajoutez un commentaire pour le champ hasInteracted

Pour clarifier l'utilisation de ce champ et faciliter la compréhension pour les autres développeurs, il serait judicieux d'ajouter un commentaire décrivant son rôle dans la classe.


7-11: Ajoutez des commentaires XML pour les méthodes abstraites

Pour améliorer la documentation et faciliter l'implémentation des classes dérivées, pensez à ajouter des commentaires XML aux méthodes abstraites Interact, RestoreState et SaveState.

Assets/Prefabs/RoomSystem/CorridorEvent/Altar.prefab (3)

21-22: Vérification de l'état actif du GameObject

Le paramètre m_IsActive est défini à 1 (ligne 22~) pour "Altar_Totem". Confirmez que cet objet doit être actif par défaut ou si son activation doit être gérée par un script en fonction de certaines conditions.


81-82: Vérifier les paramètres de couleur et de flip du SpriteRenderer

La couleur du SpriteRenderer est définie à {r: 1, g: 1, b: 1, a: 1} (ligne 81~) et m_FlipX est à 0 (ligne 82~). Si un effet visuel spécifique est souhaité, comme une inversion horizontale ou une teinte particulière, ajustez ces paramètres en conséquence.


181-182: Renommer le GameObject 'Text (TMP)' pour plus de clarté

Le nom actuel "Text (TMP)" (ligne 182~) n'est pas très descriptif. Envisagez de le renommer en "PressEText" ou similaire pour améliorer la lisibilité et faciliter la maintenance future.

Assets/Prefabs/RoomSystem/CorridorEvent/Forgeron.prefab (3)

275-275: Corriger l'orthographe du nom de l'objet "EsclamationMark"

Le nom de l'objet 'EsclamationMark' contient une faute d'orthographe. Il devrait être 'ExclamationMark'.

Proposez ce diff pour corriger l'orthographe :

- m_Name: EsclamationMark
+ m_Name: ExclamationMark

71-71: Assurer la cohérence des noms des GameObjects "Smith" et "Smither"

Il y a deux GameObjects nommés "Smith" (ligne 71) et "Smither" (ligne 496). Pour maintenir la cohérence, veuillez utiliser le même nom pour ces objets, à moins qu'il y ait une raison spécifique pour cette différence.

Also applies to: 496-496


413-413: Traduire le texte affiché en français

Le texte "Press E" est en anglais. Pour la cohérence linguistique du jeu, il serait préférable de le traduire en français, par exemple "Appuyez sur E".

Proposez ce diff pour mettre à jour le texte :

- m_text: Press E
+ m_text: Appuyez sur E
Assets/Scenes/EmptyRoom_2.unity (1)

687-819: Vérifier le texte et l'affichage du GameObject "Room N°"

Le GameObject "Room N°" a été ajouté avec un composant texte. Assurez-vous que le caractère spécial "°" est correctement rendu dans le jeu et qu'il n'y a pas de problèmes de codage de caractères. Vérifiez également les paramètres de style et d'alignement du texte.

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

📥 Commits

Files that changed from the base of the PR and between ee17795 and ee563c1.

⛔ Files ignored due to path filters (10)
  • Assets/Prefabs/RoomSystem/CorridorEvent/ForgeronAnims/Idle Working.png is excluded by !**/*.png
  • Assets/Resources/CorridorEventsRessources/Buff Totem Sprite Sheet v1.1.png is excluded by !**/*.png
  • Assets/Resources/CorridorEventsRessources/Decorations.png is excluded by !**/*.png
  • Assets/Resources/CorridorEventsRessources/Idle Adding.png is excluded by !**/*.png
  • Assets/Resources/CorridorEventsRessources/Idle Bored.png is excluded by !**/*.png
  • Assets/Resources/CorridorEventsRessources/Idle Checking.png is excluded by !**/*.png
  • Assets/Resources/CorridorEventsRessources/Idle Mixing.png is excluded by !**/*.png
  • Assets/Resources/CorridorEventsRessources/Idle Research.png is excluded by !**/*.png
  • Assets/Resources/CorridorEventsRessources/Idle Working.png is excluded by !**/*.png
  • Assets/Resources/CorridorEventsRessources/exclamation_spritesheet_01.png is excluded by !**/*.png
📒 Files selected for processing (56)
  • Assets/Prefabs/RoomSystem/Corridor/CorridorX7.prefab (3 hunks)
  • Assets/Prefabs/RoomSystem/CorridorEvent.meta (1 hunks)
  • Assets/Prefabs/RoomSystem/CorridorEvent/Altar.prefab (1 hunks)
  • Assets/Prefabs/RoomSystem/CorridorEvent/Altar.prefab.meta (1 hunks)
  • Assets/Prefabs/RoomSystem/CorridorEvent/AltarAnims.meta (1 hunks)
  • Assets/Prefabs/RoomSystem/CorridorEvent/AltarAnims/Altar.anim (1 hunks)
  • Assets/Prefabs/RoomSystem/CorridorEvent/AltarAnims/Altar.anim.meta (1 hunks)
  • Assets/Prefabs/RoomSystem/CorridorEvent/AltarAnims/Altar_Totem.controller (1 hunks)
  • Assets/Prefabs/RoomSystem/CorridorEvent/AltarAnims/Altar_Totem.controller.meta (1 hunks)
  • Assets/Prefabs/RoomSystem/CorridorEvent/Forgeron.prefab (1 hunks)
  • Assets/Prefabs/RoomSystem/CorridorEvent/Forgeron.prefab.meta (1 hunks)
  • Assets/Prefabs/RoomSystem/CorridorEvent/ForgeronAnims.meta (1 hunks)
  • Assets/Prefabs/RoomSystem/CorridorEvent/ForgeronAnims/Forgeron.anim (1 hunks)
  • Assets/Prefabs/RoomSystem/CorridorEvent/ForgeronAnims/Forgeron.anim.meta (1 hunks)
  • Assets/Prefabs/RoomSystem/CorridorEvent/ForgeronAnims/Idle Working.png.meta (1 hunks)
  • Assets/Prefabs/RoomSystem/CorridorEvent/ForgeronAnims/Smither.controller (1 hunks)
  • Assets/Prefabs/RoomSystem/CorridorEvent/ForgeronAnims/Smither.controller.meta (1 hunks)
  • Assets/Resources/CorridorEventsRessources.meta (1 hunks)
  • Assets/Resources/CorridorEventsRessources/Altar.anim (1 hunks)
  • Assets/Resources/CorridorEventsRessources/Altar.anim.meta (1 hunks)
  • Assets/Resources/CorridorEventsRessources/Buff Totem Sprite Sheet v1.1.png.meta (1 hunks)
  • Assets/Resources/CorridorEventsRessources/Decorations.png.meta (1 hunks)
  • Assets/Resources/CorridorEventsRessources/Idle Adding.png.meta (1 hunks)
  • Assets/Resources/CorridorEventsRessources/Idle Bored.png.meta (1 hunks)
  • Assets/Resources/CorridorEventsRessources/Idle Checking.png.meta (1 hunks)
  • Assets/Resources/CorridorEventsRessources/Idle Mixing.png.meta (1 hunks)
  • Assets/Resources/CorridorEventsRessources/Idle Research.png.meta (1 hunks)
  • Assets/Resources/CorridorEventsRessources/Idle Working.png.meta (1 hunks)
  • Assets/Resources/CorridorEventsRessources/exclamation_spritesheet_01.png.meta (1 hunks)
  • Assets/Scenes/DevRoom.unity (4 hunks)
  • Assets/Scenes/EmptyRoom_2.unity (6 hunks)
  • Assets/Scripts/GameData.cs (1 hunks)
  • Assets/Scripts/GameData.cs.meta (1 hunks)
  • Assets/Scripts/GameDataManager.cs (1 hunks)
  • Assets/Scripts/GameDataManager.cs.meta (1 hunks)
  • Assets/Scripts/GameTracker.cs (1 hunks)
  • Assets/Scripts/GameTracker.cs.meta (1 hunks)
  • Assets/Scripts/Map Control/DoorSystem.cs (1 hunks)
  • Assets/Scripts/Map Control/RoomSystem.meta (1 hunks)
  • Assets/Scripts/Map Control/RoomSystem/Altar.cs (1 hunks)
  • Assets/Scripts/Map Control/RoomSystem/Altar.cs.meta (1 hunks)
  • Assets/Scripts/Map Control/RoomSystem/Interface.meta (1 hunks)
  • Assets/Scripts/Map Control/RoomSystem/Interface/IInteractable.cs (1 hunks)
  • Assets/Scripts/Map Control/RoomSystem/Interface/IInteractable.cs.meta (1 hunks)
  • Assets/Scripts/Map Control/RoomSystem/Interface/InteractableObject.cs (1 hunks)
  • Assets/Scripts/Map Control/RoomSystem/Interface/InteractableObject.cs.meta (1 hunks)
  • Assets/Scripts/Map Control/RoomSystem/PNJ.meta (1 hunks)
  • Assets/Scripts/Map Control/RoomSystem/PNJ/BlackSmith.meta (1 hunks)
  • Assets/Scripts/Map Control/RoomSystem/PNJ/BlackSmith/Blacksmith.cs (1 hunks)
  • Assets/Scripts/Map Control/RoomSystem/PNJ/BlackSmith/Blacksmith.cs.meta (1 hunks)
  • Assets/Scripts/Player.meta (1 hunks)
  • Assets/Scripts/Player/Player.cs (1 hunks)
  • Assets/Scripts/Player/Player.cs.meta (1 hunks)
  • Assets/Scripts/Player/PlayerController.cs (1 hunks)
  • Assets/Scripts/Trap/Crossbow/Crossbow.cs (2 hunks)
  • Assets/Scripts/UI/Dialogue/DialogueManager.cs (0 hunks)
💤 Files with no reviewable changes (1)
  • Assets/Scripts/UI/Dialogue/DialogueManager.cs
✅ Files skipped from review due to trivial changes (35)
  • Assets/Prefabs/RoomSystem/CorridorEvent.meta
  • Assets/Prefabs/RoomSystem/CorridorEvent/Altar.prefab.meta
  • Assets/Prefabs/RoomSystem/CorridorEvent/AltarAnims.meta
  • Assets/Prefabs/RoomSystem/CorridorEvent/AltarAnims/Altar.anim
  • Assets/Prefabs/RoomSystem/CorridorEvent/AltarAnims/Altar.anim.meta
  • Assets/Prefabs/RoomSystem/CorridorEvent/AltarAnims/Altar_Totem.controller.meta
  • Assets/Prefabs/RoomSystem/CorridorEvent/Forgeron.prefab.meta
  • Assets/Prefabs/RoomSystem/CorridorEvent/ForgeronAnims.meta
  • Assets/Prefabs/RoomSystem/CorridorEvent/ForgeronAnims/Forgeron.anim
  • Assets/Prefabs/RoomSystem/CorridorEvent/ForgeronAnims/Forgeron.anim.meta
  • Assets/Prefabs/RoomSystem/CorridorEvent/ForgeronAnims/Idle Working.png.meta
  • Assets/Prefabs/RoomSystem/CorridorEvent/ForgeronAnims/Smither.controller.meta
  • Assets/Resources/CorridorEventsRessources.meta
  • Assets/Resources/CorridorEventsRessources/Altar.anim
  • Assets/Resources/CorridorEventsRessources/Altar.anim.meta
  • Assets/Resources/CorridorEventsRessources/Buff Totem Sprite Sheet v1.1.png.meta
  • Assets/Resources/CorridorEventsRessources/Idle Bored.png.meta
  • Assets/Resources/CorridorEventsRessources/Idle Checking.png.meta
  • Assets/Resources/CorridorEventsRessources/Idle Mixing.png.meta
  • Assets/Resources/CorridorEventsRessources/Idle Research.png.meta
  • Assets/Resources/CorridorEventsRessources/exclamation_spritesheet_01.png.meta
  • Assets/Scripts/GameData.cs.meta
  • Assets/Scripts/GameDataManager.cs.meta
  • Assets/Scripts/GameTracker.cs.meta
  • Assets/Scripts/Map Control/RoomSystem.meta
  • Assets/Scripts/Map Control/RoomSystem/Altar.cs.meta
  • Assets/Scripts/Map Control/RoomSystem/Interface.meta
  • Assets/Scripts/Map Control/RoomSystem/Interface/IInteractable.cs.meta
  • Assets/Scripts/Map Control/RoomSystem/Interface/InteractableObject.cs.meta
  • Assets/Scripts/Map Control/RoomSystem/PNJ.meta
  • Assets/Scripts/Map Control/RoomSystem/PNJ/BlackSmith.meta
  • Assets/Scripts/Map Control/RoomSystem/PNJ/BlackSmith/Blacksmith.cs.meta
  • Assets/Scripts/Player.meta
  • Assets/Scripts/Player/Player.cs.meta
  • Assets/Scripts/Trap/Crossbow/Crossbow.cs
🧰 Additional context used
🔇 Additional comments (29)
Assets/Scripts/Map Control/RoomSystem/Interface/IInteractable.cs (1)

1-4: Bonne implémentation de l'interface IInteractable.

L'interface IInteractable est bien conçue et suit les bonnes pratiques de programmation. Elle définit une méthode unique Interact qui prend un paramètre Player, ce qui permettra une interaction cohérente entre le joueur et divers objets du jeu.

Points positifs :

  • Respect du principe de responsabilité unique
  • Nomenclature conforme aux standards C#
  • Interface simple et claire facilitant son implémentation

Cette approche favorisera la modularité et la maintenabilité du code en permettant à différents objets du jeu d'implémenter leurs propres logiques d'interaction tout en respectant un contrat commun.

Assets/Scripts/GameData.cs (1)

3-5: Bonne utilisation de l'attribut Serializable.

La déclaration de la classe GameData avec l'attribut [System.Serializable] est appropriée pour la gestion des données de jeu. Cela permettra une sérialisation facile pour la sauvegarde et le chargement des données.

Assets/Scripts/Player/Player.cs (2)

1-6: LGTM : Déclaration de classe et importations appropriées.

La déclaration de la classe et les importations sont conformes aux conventions Unity et semblent appropriées pour la fonctionnalité prévue.


22-25: LGTM : Méthode HasItem bien implémentée.

La méthode HasItem est correctement implémentée et concise. Elle remplit efficacement sa fonction de vérification de la présence d'un item dans l'inventaire.

Assets/Scripts/GameDataManager.cs (1)

11-22: Bonne implémentation du pattern Singleton

La méthode Awake implémente correctement le pattern Singleton et utilise DontDestroyOnLoad pour persister l'objet entre les scènes.

Assets/Prefabs/RoomSystem/CorridorEvent/ForgeronAnims/Smither.controller (1)

5-28: Vérifiez la configuration de l'AnimatorState "Forgeron".

La configuration de base semble correcte, mais il y a quelques points à considérer :

  1. Aucune transition n'est définie. Est-ce intentionnel ou devrait-il y avoir des transitions vers d'autres états ?
  2. Assurez-vous que le GUID de l'animation (3ac0205848dec4741b9aacd262d09129) est correct et correspond à l'animation souhaitée.

Pouvez-vous confirmer que c'est le comportement souhaité pour l'animation du forgeron ?

Assets/Prefabs/RoomSystem/CorridorEvent/AltarAnims/Altar_Totem.controller (2)

3-28: Configuration de l'AnimatorState approuvée.

La configuration de l'AnimatorState "Altar" semble correcte pour une animation en boucle simple. Assurez-vous que le clip d'animation référencé par le GUID existe et contient l'animation souhaitée pour l'autel.


51-72: Configuration de l'AnimatorStateMachine approuvée.

La configuration de l'AnimatorStateMachine est correcte pour un contrôleur à état unique. La définition du positionnement des nœuds d'entrée, de sortie et de tout état est une bonne pratique pour l'organisation visuelle dans l'éditeur Unity.

Assets/Resources/CorridorEventsRessources/Idle Adding.png.meta (3)

1-6: Les informations de base de l'asset sont correctes.

Les paramètres de base du fichier méta, y compris la version du format de fichier, le GUID et la version de sérialisation du TextureImporter, sont correctement définis et suivent le format standard de Unity.


109-122: Les informations de la feuille de sprites sont correctes pour une sprite unique.

La configuration de la feuille de sprites est appropriée pour une texture contenant une seule sprite. L'absence de sprites définis et la présence d'un spriteID par défaut sont normales dans ce contexte.


123-127: Les métadonnées supplémentaires sont correctement configurées.

Les champs vides pour userData, assetBundleName et assetBundleVariant sont normaux, à moins que des configurations spécifiques d'asset bundle ne soient nécessaires. Les autres paramètres sont typiques pour une importation standard de sprite.

Assets/Scripts/Player/PlayerController.cs (1)

27-33: Revoyez l'utilisation du champ player dans la classe.

L'ajout du champ player et son initialisation sont de bonnes améliorations pour la structure du code. Cependant, il semble que ce champ ne soit pas encore utilisé dans le reste de la classe PlayerMovement.

Assurez-vous que :

  1. Vous avez bien l'intention d'utiliser ce champ dans cette classe.
  2. Vous avez planifié l'intégration des fonctionnalités du composant Player dans les méthodes existantes.

Si l'utilisation est prévue dans d'autres fichiers, veuillez l'indiquer dans un commentaire pour clarifier l'intention.

Assets/Resources/CorridorEventsRessources/Idle Working.png.meta (2)

1-6: Configuration correcte du fichier et de la version

La configuration de base du fichier, y compris la version du format et le GUID, est correctement définie pour une utilisation dans Unity.


7-68: Paramètres d'importation optimisés pour l'art pixelisé

Les paramètres d'importation sont bien configurés pour un sprite sheet d'art pixelisé :

  • Le mode de filtrage point (ligne 37) préserve la netteté des pixels.
  • Le rapport pixels/unités de 16 (ligne 51) est adapté à l'échelle du jeu.
  • La désactivation des mipmaps (ligne 9) est appropriée pour ce type d'art.

Ces réglages garantissent un rendu fidèle et optimal des sprites pixelisés.

Assets/Resources/CorridorEventsRessources/Decorations.png.meta (3)

1-6: Configuration du fichier correcte.

La version du format de fichier, le GUID et la version de sérialisation du TextureImporter sont correctement définis.


7-68: Paramètres d'importation de texture appropriés pour un asset 2D.

Les réglages semblent adaptés à un asset de jeu 2D, probablement en pixel art. Vérifiez que ces paramètres (notamment le mode de filtrage point et le ratio pixels/unités de 16) sont cohérents avec le style artistique du projet et les exigences de performance.


409-413: Métadonnées additionnelles correctes.

Les champs de métadonnées supplémentaires sont configurés de manière standard et ne soulèvent aucune préoccupation.

Assets/Prefabs/RoomSystem/Corridor/CorridorX7.prefab (1)

94-124: Ajout du point d'apparition du forgeron approuvé.

L'ajout du GameObject BlacksmithSpawnPoint est cohérent avec les objectifs du PR pour implémenter un système de salle dynamique avec de nouveaux événements. La position semble appropriée, mais il serait bon de la vérifier dans l'éditeur Unity pour s'assurer qu'elle correspond à l'emplacement souhaité dans le corridor.

Assets/Scripts/Map Control/RoomSystem/Altar.cs (1)

74-85: ⚠️ Potential issue

Assurer l'initialisation des listes dans GameData pour éviter des exceptions

Dans les méthodes SaveState et RestoreState, il est important de s'assurer que les listes dans gameData sont correctement initialisées pour éviter des exceptions NullReferenceException.

Voulez-vous que je vous aide en vérifiant ou en ajustant le code pour garantir une initialisation correcte ?

Assets/Prefabs/RoomSystem/CorridorEvent/Altar.prefab (5)

48-51: Optimisation des ombres et des probes lumineuses

Les paramètres m_CastShadows (ligne 47~) et m_ReceiveShadows (ligne 48~) sont désactivés. Si cela est intentionnel pour des raisons de performance, c'est acceptable. Sinon, envisagez de les activer pour améliorer le réalisme visuel de l'autel.


92-111: Vérification du contrôleur d'animation assigné

L'Animator (ligne 92~) référence un contrôleur avec le GUID indiqué (ligne 101~). Assurez-vous que ce contrôleur d'animation existe dans le projet et qu'il contient les animations nécessaires pour l'autel, afin d'éviter des problèmes d'animation à l'exécution.


141-142: Confirmer le paramètre 'IsTrigger' du BoxCollider2D

Le BoxCollider2D a m_IsTrigger défini à 1 (ligne 141~), ce qui signifie qu'il détectera les collisions sans réponse physique. Vérifiez que cela correspond au comportement attendu pour permettre les interactions du joueur avec l'autel.


441-442: Vérifier les paramètres de sorting du Canvas

Les valeurs m_SortingLayerID (-1791178601, ligne 441~) et m_SortingOrder (50, ligne 442~) déterminent l'ordre de rendu du Canvas. Confirmez que ces paramètres permettent au canvas d'interaction de s'afficher correctement devant les autres éléments de la scène.


166-166: Assurer la présence du script référencé

Le MonoBehaviour (ligne 166~) fait référence à un script avec le GUID donné. Veuillez confirmer que ce script est bien présent dans le projet et qu'il est correctement compilé pour éviter des erreurs à l'exécution.

Assets/Scenes/EmptyRoom_2.unity (4)

392-408: Vérifier la configuration du GameObject "Stage"

Le GameObject "Stage" a été ajouté avec les composants RectTransform, MonoBehaviour et CanvasRenderer. Assurez-vous que les propriétés du RectTransform (position, échelle, ancrage) sont correctement configurées pour un affichage optimal. De plus, vérifiez que le texte affiché est correct et que les paramètres de police sont appropriés.


526-543: Vérifier la configuration du GameObject "Chrono"

Le GameObject "Chrono" a été ajouté avec les composants nécessaires. Veuillez vous assurer que le texte "Chrono" est correctement affiché et que les références de police et de matériau sont correctement assignées. Vérifiez également les paramètres du RectTransform pour un positionnement adéquat.


1160-1161: Le GameObject "Pause" est désactivé

Le GameObject "Pause" a son état m_IsActive défini sur 0 (désactivé). Si le menu de pause doit être accessible au joueur, assurez-vous qu'il est activé au moment approprié ou modifiez son état initial pour qu'il soit actif.


1268-1272: Vérifier la référence pauseMenuUI dans GameTracker

La référence pauseMenuUI a été ajoutée au script GameTracker. Assurez-vous que cette référence pointe vers le GameObject correct dans la scène pour garantir le bon fonctionnement du menu de pause.

Assets/Scenes/DevRoom.unity (1)

2503-2523: Vérifier l'ajout de l'Animator sur le "Tilemap"

L'ajout d'un composant Animator au GameObject "Tilemap" est inhabituel. Assurez-vous que cet ajout est nécessaire et que le contrôleur d'animation référencé est correctement configuré.

Comment on lines +6 to +9
public bool blacksmithInteracted = false;
public int blacksmithDialogueIndex = 0;
public List<string> altarAvailableItems = new List<string>();
public List<string> altarPlayerReceivedItems = new List<string>();
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🛠️ Refactor suggestion

Considérez l'utilisation de propriétés et d'une structure plus robuste pour les objets.

Les champs publics offrent un accès facile aux données, mais peuvent compromettre l'encapsulation. Voici quelques suggestions d'amélioration :

  1. Utilisez des propriétés avec des accesseurs publics et des mutateurs privés pour un meilleur contrôle de l'accès aux données.
  2. Envisagez de créer une classe Item au lieu d'utiliser string pour les objets de l'autel. Cela permettrait d'ajouter plus facilement des attributs aux objets à l'avenir.

Exemple de refactorisation :

public bool BlacksmithInteracted { get; private set; } = false;
public int BlacksmithDialogueIndex { get; private set; } = 0;
public List<Item> AltarAvailableItems { get; private set; } = new List<Item>();
public List<Item> AltarPlayerReceivedItems { get; private set; } = new List<Item>();

public class Item
{
    public string Name { get; set; }
    // Autres propriétés potentielles : Type, Rareté, etc.
}

Comment on lines +1 to +11
using System.Collections.Generic;

[System.Serializable]
public class GameData
{
public bool blacksmithInteracted = false;
public int blacksmithDialogueIndex = 0;
public List<string> altarAvailableItems = new List<string>();
public List<string> altarPlayerReceivedItems = new List<string>();

}
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🛠️ Refactor suggestion

Envisagez d'ajouter des méthodes pour la gestion des données.

La classe GameData pourrait bénéficier de méthodes supplémentaires pour améliorer la gestion des données et l'encapsulation. Voici quelques suggestions :

  1. Ajoutez des méthodes pour manipuler les listes d'objets de l'autel, par exemple :

    public void AddAltarItem(string item)
    public void RemoveAltarItem(string item)
    public void ReceiveAltarItem(string item)
  2. Implémentez une méthode pour progresser dans le dialogue du forgeron :

    public void AdvanceBlacksmithDialogue()
  3. Ajoutez une méthode pour réinitialiser les données du jeu :

    public void ResetGameData()

Ces ajouts permettraient un meilleur contrôle sur les modifications des données du jeu et réduiraient le risque d'états invalides.

public class Player : MonoBehaviour
{

public List<string> inventory = new List<string>();
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🛠️ Refactor suggestion

Suggestion : Améliorez l'encapsulation et la robustesse de l'inventaire.

Considérez les points suivants pour améliorer l'implémentation de l'inventaire :

  1. Utilisez une propriété privée avec un accesseur public pour mieux contrôler l'accès à l'inventaire.
  2. Envisagez d'utiliser une classe Item personnalisée au lieu de simples chaînes pour une meilleure extensibilité.

Voici une suggestion d'implémentation améliorée :

private List<Item> _inventory = new List<Item>();
public IReadOnlyList<Item> Inventory => _inventory.AsReadOnly();

Cela offre un meilleur contrôle sur les modifications de l'inventaire tout en permettant un accès en lecture seule depuis l'extérieur.

Comment on lines +11 to +20
public void AddItemToInventory(string item)
{
if (!inventory.Contains(item))
{
inventory.Add(item);
}
else
{
}
}
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🛠️ Refactor suggestion

Suggestion : Simplifiez la méthode AddItemToInventory et ajoutez des logs.

La logique d'ajout d'objets est correcte, mais nous pouvons l'améliorer :

  1. Supprimez le bloc else vide car il n'ajoute aucune valeur.
  2. Envisagez d'ajouter des logs pour le débogage.

Voici une implémentation améliorée :

public void AddItemToInventory(string item)
{
    if (!inventory.Contains(item))
    {
        inventory.Add(item);
        Debug.Log($"Item ajouté à l'inventaire : {item}");
    }
    else
    {
        Debug.Log($"L'item {item} est déjà dans l'inventaire.");
    }
}

Cette version simplifie le code et ajoute des logs utiles pour le débogage.

Comment on lines +34 to +41
public void LoadGame()
{
foreach (InteractableObject interactable in FindObjectsOfType<InteractableObject>())
{
interactable.RestoreState(gameData);
}
//TODO Lire ici toute la data en JSON pour retrieve
}
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🛠️ Refactor suggestion

Optimisez le chargement, complétez la désérialisation JSON et réutilisez le code

La méthode LoadGame présente des problèmes similaires à SaveGame en termes d'efficacité et d'implémentation incomplète.

Suggestions d'amélioration :

  1. Utilisez une structure de données plus efficace pour stocker et récupérer les objets interactifs.
  2. Implémentez la désérialisation JSON comme indiqué dans le TODO.
  3. Considérez la création d'une méthode privée pour le code commun entre SaveGame et LoadGame.

Exemple de refactorisation :

private void ProcessInteractableObjects(Action<InteractableObject, GameData> action)
{
    foreach (InteractableObject interactable in FindObjectsOfType<InteractableObject>())
    {
        action(interactable, gameData);
    }
}

public void SaveGame()
{
    ProcessInteractableObjects((interactable, data) => interactable.SaveState(data));
    // TODO: Sérialiser gameData en JSON
}

public void LoadGame()
{
    // TODO: Désérialiser JSON en gameData
    ProcessInteractableObjects((interactable, data) => interactable.RestoreState(data));
}

m_faceColor:
serializedVersion: 2
rgba: 4294967295
m_fontSize: 0.2
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

Vérifier la taille de police pour le texte

La taille de police est définie à 0.2, ce qui semble très petit. Veuillez vérifier si cette valeur est correcte ou si elle devrait être augmentée pour assurer la lisibilité du texte.

Proposez ce diff pour ajuster la taille de police à une valeur plus lisible :

- m_fontSize: 0.2
+ m_fontSize: 20

Committable suggestion was skipped due to low confidence.

- component: {fileID: 382455319}
- component: {fileID: 382455318}
m_Layer: 0
m_Name: Smither
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

Correction du nom du GameObject "Smither"

Le nom "Smither" semble être une erreur typographique ou une incohérence linguistique. Pour maintenir la cohérence du projet, veuillez renommer ce GameObject en "Forgeron".


⚠️ Potential issue

Incohérence dans les noms des GameObjects "Smither" et "Forgeron"

Il y a une incohérence dans les noms des GameObjects : "Smither" à la ligne 299 et "Forgeron" à la ligne 2538. Pour assurer la cohérence et faciliter la maintenance, veuillez utiliser un nom uniforme pour ce GameObject.

Also applies to: 2538-2538

Comment on lines +52 to +61
public void SpawnCorridorEvents()
{
altarSpawnPoint = GameObject.Find("AltarSpawnPoint")?.transform;

if (blacksmithSpawnPoint == null || altarSpawnPoint == null)
{

return;
}

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

Assignation manquante de blacksmithSpawnPoint

Le point de spawn pour le forgeron (blacksmithSpawnPoint) n'est pas initialisé, ce qui peut entraîner une NullReferenceException lors de l'instanciation du prefab du forgeron.

Pour corriger ce problème, ajoutez l'assignation suivante au début de la méthode SpawnCorridorEvents :

+        blacksmithSpawnPoint = GameObject.Find("BlacksmithSpawnPoint")?.transform;

         altarSpawnPoint = GameObject.Find("AltarSpawnPoint")?.transform;

         if (blacksmithSpawnPoint == null || altarSpawnPoint == null)
         {
             return;  
         }
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
public void SpawnCorridorEvents()
{
altarSpawnPoint = GameObject.Find("AltarSpawnPoint")?.transform;
if (blacksmithSpawnPoint == null || altarSpawnPoint == null)
{
return;
}
public void SpawnCorridorEvents()
{
blacksmithSpawnPoint = GameObject.Find("BlacksmithSpawnPoint")?.transform;
altarSpawnPoint = GameObject.Find("AltarSpawnPoint")?.transform;
if (blacksmithSpawnPoint == null || altarSpawnPoint == null)
{
return;
}

Comment on lines +35 to +42
void Update()
{
elapsedTime += Time.deltaTime;

int minutes = (int)elapsedTime / 60;
int seconds = (int)elapsedTime % 60;
timerText.text = minutes.ToString("00") + ":" + seconds.ToString("00");
}
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

Calcul du temps écoulé potentiellement incorrect

Le calcul des minutes et des secondes à partir de elapsedTime peut être inexact en raison du cast d'un float en int, ce qui tronque la valeur au lieu de l'arrondir correctement.

Pour une précision accrue, utilisez Mathf.FloorToInt :

-        int minutes = (int)elapsedTime / 60;
-        int seconds = (int)elapsedTime % 60;
+        int minutes = Mathf.FloorToInt(elapsedTime / 60f);
+        int seconds = Mathf.FloorToInt(elapsedTime % 60f);
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
void Update()
{
elapsedTime += Time.deltaTime;
int minutes = (int)elapsedTime / 60;
int seconds = (int)elapsedTime % 60;
timerText.text = minutes.ToString("00") + ":" + seconds.ToString("00");
}
void Update()
{
elapsedTime += Time.deltaTime;
int minutes = Mathf.FloorToInt(elapsedTime / 60f);
int seconds = Mathf.FloorToInt(elapsedTime % 60f);
timerText.text = minutes.ToString("00") + ":" + seconds.ToString("00");
}

Comment on lines +63 to +79
if (stageCounter >= 5 && blacksmithPrefab != null)
{
currentBlacksmith = Instantiate(blacksmithPrefab, blacksmithSpawnPoint.position, Quaternion.identity);
UnityEngine.Debug.Log("Forgeron spawné au stage 5.");
}

// Apparition de l'autel au stage 10, et réinitialisation de ses objets
if (stageCounter >= 10 && altarPrefab != null)
{
currentAltar = Instantiate(altarPrefab, altarSpawnPoint.position, Quaternion.identity);
UnityEngine.Debug.Log("Autel spawné au stage 10.");
Altar altarScript = currentAltar.GetComponent<Altar>();
if (altarScript != null)
{
altarScript.ResetItems();
}
}
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🛠️ Refactor suggestion

Rendre les stages de spawn configurables

Les stages de spawn pour le forgeron (5) et l'autel (10) sont codés en dur. Il serait préférable de les rendre configurables pour faciliter les ajustements futurs et améliorer la flexibilité.

Vous pouvez les définir comme des variables [SerializeField] pour pouvoir les modifier depuis l'éditeur Unity :

+    [SerializeField] private int blacksmithSpawnStage = 5;
+    [SerializeField] private int altarSpawnStage = 10;

     // Apparition du forgeron au stage 5
-    if (stageCounter >= 5 && blacksmithPrefab != null)
+    if (stageCounter >= blacksmithSpawnStage && blacksmithPrefab != null)
     {
         currentBlacksmith = Instantiate(blacksmithPrefab, blacksmithSpawnPoint.position, Quaternion.identity);
-        UnityEngine.Debug.Log("Forgeron spawné au stage 5.");
+        UnityEngine.Debug.Log("Forgeron spawné au stage " + blacksmithSpawnStage + ".");
     }

     // Apparition de l'autel au stage 10, et réinitialisation de ses objets
-    if (stageCounter >= 10 && altarPrefab != null)
+    if (stageCounter >= altarSpawnStage && altarPrefab != null)
     {
         currentAltar = Instantiate(altarPrefab, altarSpawnPoint.position, Quaternion.identity);
-        UnityEngine.Debug.Log("Autel spawné au stage 10.");
+        UnityEngine.Debug.Log("Autel spawné au stage " + altarSpawnStage + ".");
         Altar altarScript = currentAltar.GetComponent<Altar>();
         if (altarScript != null)
         {
             altarScript.ResetItems();  
         }
     }
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
if (stageCounter >= 5 && blacksmithPrefab != null)
{
currentBlacksmith = Instantiate(blacksmithPrefab, blacksmithSpawnPoint.position, Quaternion.identity);
UnityEngine.Debug.Log("Forgeron spawné au stage 5.");
}
// Apparition de l'autel au stage 10, et réinitialisation de ses objets
if (stageCounter >= 10 && altarPrefab != null)
{
currentAltar = Instantiate(altarPrefab, altarSpawnPoint.position, Quaternion.identity);
UnityEngine.Debug.Log("Autel spawné au stage 10.");
Altar altarScript = currentAltar.GetComponent<Altar>();
if (altarScript != null)
{
altarScript.ResetItems();
}
}
[SerializeField] private int blacksmithSpawnStage = 5;
[SerializeField] private int altarSpawnStage = 10;
if (stageCounter >= blacksmithSpawnStage && blacksmithPrefab != null)
{
currentBlacksmith = Instantiate(blacksmithPrefab, blacksmithSpawnPoint.position, Quaternion.identity);
UnityEngine.Debug.Log("Forgeron spawné au stage " + blacksmithSpawnStage + ".");
}
// Apparition de l'autel au stage 10, et réinitialisation de ses objets
if (stageCounter >= altarSpawnStage && altarPrefab != null)
{
currentAltar = Instantiate(altarPrefab, altarSpawnPoint.position, Quaternion.identity);
UnityEngine.Debug.Log("Autel spawné au stage " + altarSpawnStage + ".");
Altar altarScript = currentAltar.GetComponent<Altar>();
if (altarScript != null)
{
altarScript.ResetItems();
}
}

@AyakorK AyakorK merged commit 0c220b1 into develop Oct 22, 2024
@AyakorK AyakorK deleted the feature/gameTracker branch October 22, 2024 08:19
Thomlam added a commit that referenced this pull request Oct 23, 2024
* Feature/initialization (#1)

* feature: Init repository

* chore: add git ignore

* chore: Upgrade .gitignore

* chore: Remove all ignored files

* chore: Removed all files that are in the .gitignore

---------

Co-authored-by: Thomas Lamiable <lamiablethomas@gmail.com>

* docs: Update README.md

* Feature/global map (#3)

* feature: Add Timelap and player

* fix: fix error with tilemap

* feat: First version of Player Movements

* feat: First version of animation of the player movements

* fix: Update Player prefab to add the animator

* feat: Add collisions + modify player prefab

* chore: Remove useless folder Art

* feature: Add socket connection and linking it to the back-end

* fix(player_movement): Fix call between backend and game

* feature: Ajout de nombreux assets, modifications de la taille, découpage assets

* fix: Global Fixes about the blurring of the components imported

* feat: Add first rooms

* fix: Fix animations and player asset

* feat: Create Third room

* fix: Reduce player's hitbox

* feature: Ajouts des systèmes de pièges, connections et manager des pièges, animations de la crossbow, ajouts des sprites de l'arrow et de ces effets puis damages, changements tags du joueurs et des walls, changement et ajouts des systèmes de vie du joueurs, changements première phase de l'ui et création de celui-ci

* fix: compression des images retirer

* revert: Revert changes on the ground.png.meta

* revert: Revert changes made on the furnitures

* fix: Fix position of map 1 and player collision

* fix: Fix rooms placement

* fix: Fix arrow physics

* feature: Add doors and animations

* feature: add door system end remove multiple commentary

---------

Co-authored-by: AyakorK <guillaume.moret@yahoo.com>
Co-authored-by: Loule | Louis <35641311+Loule95450@users.noreply.github.com>

* Feature/addition of corridors (#4)

* feature: Add Timelap and player

* fix: fix error with tilemap

* feat: First version of Player Movements

* feat: First version of animation of the player movements

* fix: Update Player prefab to add the animator

* feat: Add collisions + modify player prefab

* chore: Remove useless folder Art

* feature: Add socket connection and linking it to the back-end

* fix(player_movement): Fix call between backend and game

* feature: Ajout de nombreux assets, modifications de la taille, découpage assets

* fix: Global Fixes about the blurring of the components imported

* feat: Add first rooms

* fix: Fix animations and player asset

* feat: Create Third room

* fix: Reduce player's hitbox

* feature: Ajouts des systèmes de pièges, connections et manager des pièges, animations de la crossbow, ajouts des sprites de l'arrow et de ces effets puis damages, changements tags du joueurs et des walls, changement et ajouts des systèmes de vie du joueurs, changements première phase de l'ui et création de celui-ci

* fix: compression des images retirer

* revert: Revert changes on the ground.png.meta

* revert: Revert changes made on the furnitures

* fix: Fix position of map 1 and player collision

* fix: Fix rooms placement

* fix: Fix arrow physics

* feature: Add doors and animations

* feat: Addition of corridors

* feature: add door system end remove multiple commentary

---------

Co-authored-by: AyakorK <guillaume.moret@yahoo.com>
Co-authored-by: Loule | Louis <35641311+Loule95450@users.noreply.github.com>

* feature: First try to add level move in Unity

* feat: fix Arrow, upgrade door system

* feat: Fix multiple problem

* fix: fix door teleport with disable player public selected

* feat: Add Menu system, update styling

* feat: Add Dialog system, add multiple coroutine for enable or disable dialog box

* feat: Level move (#7)

* feature: First try to add level move in Unity

* feat: fix Arrow, upgrade door system

* feat: Fix multiple problem

* fix: fix door teleport with disable player public selected

* feat: Addition of traps using sockets (#6)

* feat: Add auto implementation from website of traps

* chore: Add environment variables to UnityProject (#5)

* fix: Remove useless Log that was crashed

* fix(level_move): Replace hard-coded values ​​with variables for better flexibility

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

---------

Co-authored-by: Thomas Lamiable <lamiablethomas@gmail.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* feat: Add and fix prefab, add DevRoom prefab

* fix: fix door

* feat: Add Socket to props to send them to back-end (#8)

* feature: First try to add level move in Unity

* feat: fix Arrow, upgrade door system

* feat: Fix multiple problem

* fix: fix door teleport with disable player public selected

* feat: Addition of traps using sockets (#6)

* feat: Add auto implementation from website of traps

* chore: Add environment variables to UnityProject (#5)

* fix: Remove useless Log that was crashed

* feat: Add link to props using sockets

* feat: Add a unique socket system manager

---------

Co-authored-by: Thomas Lamiable <lamiablethomas@gmail.com>

* hotfix: Delete code duplication

* Feature/menu (#11)

* merge: Merge menu and develop and fix little issues (#10)

* merge: Merge develop to menu (#9)

* feat: Level move (#7)

* feature: First try to add level move in Unity

* feat: fix Arrow, upgrade door system

* feat: Fix multiple problem

* fix: fix door teleport with disable player public selected

* feat: Addition of traps using sockets (#6)

* feat: Add auto implementation from website of traps

* chore: Add environment variables to UnityProject (#5)

* fix: Remove useless Log that was crashed

* fix(level_move): Replace hard-coded values ​​with variables for better flexibility

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

---------

Co-authored-by: Thomas Lamiable <lamiablethomas@gmail.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* feat: Add Socket to props to send them to back-end (#8)

* feature: First try to add level move in Unity

* feat: fix Arrow, upgrade door system

* feat: Fix multiple problem

* fix: fix door teleport with disable player public selected

* feat: Addition of traps using sockets (#6)

* feat: Add auto implementation from website of traps

* chore: Add environment variables to UnityProject (#5)

* fix: Remove useless Log that was crashed

* feat: Add link to props using sockets

* feat: Add a unique socket system manager

---------

Co-authored-by: Thomas Lamiable <lamiablethomas@gmail.com>

---------

Co-authored-by: Thomas Lamiable <lamiablethomas@gmail.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* fix: Remove duplication of code

* fix: Fix Idle animation

---------

Co-authored-by: Thomas Lamiable <lamiablethomas@gmail.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* revert: Revert changes from EmptyRoom that breaked doors

* feat:Some menu option had

* feat: Add pause system, return to menu and restart game, fix OnLoadScene in unity for hard reset player state

* chore: remove commentary for trap manager

---------

Co-authored-by: Guillaume MORET <90462045+AyakorK@users.noreply.github.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: AyakorK <guillaume.moret@yahoo.com>

* fix: remove duplicata room

* feat: Add a visual timer prefab (V.1.0) (#12)

Co-authored-by: AyakorK <guillaume.moret@yahoo.com>

* feat: Add dynamic environment interaction system and new events (#13)

- Implement player interaction system with the environment
- Add dynamic room system:
  - Events now added based on room number and corridor-specific stages
  - Dynamic event generation based on the current floor
- New events added:
  - "Blacksmith"
  - "Altar" event allowing players to take one item
- Introduced IsCorridor detection system for dynamic instantiation and removal of corridor events
- Enhance item saving system to persist data across rooms, including inventory, dialogues, and more
- Implement full inventory system
- Add multiple UI elements, animations, and canvas for visual feedback

* fix: add removed line

* feat: Add waiting screen and fix some behaviors (#14)

* merge: Merge menu and develop and fix little issues (#10)

* merge: Merge develop to menu (#9)

* feat: Level move (#7)

* feature: First try to add level move in Unity

* feat: fix Arrow, upgrade door system

* feat: Fix multiple problem

* fix: fix door teleport with disable player public selected

* feat: Addition of traps using sockets (#6)

* feat: Add auto implementation from website of traps

* chore: Add environment variables to UnityProject (#5)

* fix: Remove useless Log that was crashed

* fix(level_move): Replace hard-coded values ​​with variables for better flexibility

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

---------

Co-authored-by: Thomas Lamiable <lamiablethomas@gmail.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* feat: Add Socket to props to send them to back-end (#8)

* feature: First try to add level move in Unity

* feat: fix Arrow, upgrade door system

* feat: Fix multiple problem

* fix: fix door teleport with disable player public selected

* feat: Addition of traps using sockets (#6)

* feat: Add auto implementation from website of traps

* chore: Add environment variables to UnityProject (#5)

* fix: Remove useless Log that was crashed

* feat: Add link to props using sockets

* feat: Add a unique socket system manager

---------

Co-authored-by: Thomas Lamiable <lamiablethomas@gmail.com>

---------

Co-authored-by: Thomas Lamiable <lamiablethomas@gmail.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* fix: Remove duplication of code

* fix: Fix Idle animation

---------

Co-authored-by: Thomas Lamiable <lamiablethomas@gmail.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* revert: Revert changes from EmptyRoom that breaked doors

* feat: V1.0 of WaitingScreen

* fix: Fix the way of sending props and remove the SocketManager from the player

* fix: Remove the Socket when leaving to the menu

* feat: Add the SocketManager to the Menu

* fix: Fix player animation and options text

---------

Co-authored-by: Thomas Lamiable <lamiablethomas@gmail.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* feat: Add trap persistance through rooms (#15)

* feat: Camera Control & Room enlargement (#16)

* feat: Try to update the camera of the user (a bit of a disaster by now)

* fix: Add good tracker Y limit for camera move, synch HUD with camera move

* fix: Fix the camera adapting to the scene

* feat: Get the room bigger

---------

Co-authored-by: Thomlam <lamiablethomas@gmail.com>

* feat: Modify the new room (#17)

* fix: Add a missing pillar

* fix: Crossbow positions (#18)

* fix: Fix the placement of the crossbows

* feat: Add hitboxes to crossbows

* fix: Remove useless traps spawns

* fix: Reorder correctly the crossbow prefabs

* Feature/add traps (#19)

* feature: Update some animations and system for the player, and add new trap

* feat: update EmptyRoom2 for test

---------

Co-authored-by: Guillaume MORET <90462045+AyakorK@users.noreply.github.com>

---------

Co-authored-by: Loule | Louis <35641311+Loule95450@users.noreply.github.com>
Co-authored-by: AyakorK <guillaume.moret@yahoo.com>
Co-authored-by: Guillaume MORET <90462045+AyakorK@users.noreply.github.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Loule95450 added a commit that referenced this pull request Oct 23, 2024
* Feature/initialization (#1)

* feature: Init repository

* chore: add git ignore

* chore: Upgrade .gitignore

* chore: Remove all ignored files

* chore: Removed all files that are in the .gitignore

---------

Co-authored-by: Thomas Lamiable <lamiablethomas@gmail.com>

* docs: Update README.md

* Feature/global map (#3)

* feature: Add Timelap and player

* fix: fix error with tilemap

* feat: First version of Player Movements

* feat: First version of animation of the player movements

* fix: Update Player prefab to add the animator

* feat: Add collisions + modify player prefab

* chore: Remove useless folder Art

* feature: Add socket connection and linking it to the back-end

* fix(player_movement): Fix call between backend and game

* feature: Ajout de nombreux assets, modifications de la taille, découpage assets

* fix: Global Fixes about the blurring of the components imported

* feat: Add first rooms

* fix: Fix animations and player asset

* feat: Create Third room

* fix: Reduce player's hitbox

* feature: Ajouts des systèmes de pièges, connections et manager des pièges, animations de la crossbow, ajouts des sprites de l'arrow et de ces effets puis damages, changements tags du joueurs et des walls, changement et ajouts des systèmes de vie du joueurs, changements première phase de l'ui et création de celui-ci

* fix: compression des images retirer

* revert: Revert changes on the ground.png.meta

* revert: Revert changes made on the furnitures

* fix: Fix position of map 1 and player collision

* fix: Fix rooms placement

* fix: Fix arrow physics

* feature: Add doors and animations

* feature: add door system end remove multiple commentary

---------

Co-authored-by: AyakorK <guillaume.moret@yahoo.com>
Co-authored-by: Loule | Louis <35641311+Loule95450@users.noreply.github.com>

* Feature/addition of corridors (#4)

* feature: Add Timelap and player

* fix: fix error with tilemap

* feat: First version of Player Movements

* feat: First version of animation of the player movements

* fix: Update Player prefab to add the animator

* feat: Add collisions + modify player prefab

* chore: Remove useless folder Art

* feature: Add socket connection and linking it to the back-end

* fix(player_movement): Fix call between backend and game

* feature: Ajout de nombreux assets, modifications de la taille, découpage assets

* fix: Global Fixes about the blurring of the components imported

* feat: Add first rooms

* fix: Fix animations and player asset

* feat: Create Third room

* fix: Reduce player's hitbox

* feature: Ajouts des systèmes de pièges, connections et manager des pièges, animations de la crossbow, ajouts des sprites de l'arrow et de ces effets puis damages, changements tags du joueurs et des walls, changement et ajouts des systèmes de vie du joueurs, changements première phase de l'ui et création de celui-ci

* fix: compression des images retirer

* revert: Revert changes on the ground.png.meta

* revert: Revert changes made on the furnitures

* fix: Fix position of map 1 and player collision

* fix: Fix rooms placement

* fix: Fix arrow physics

* feature: Add doors and animations

* feat: Addition of corridors

* feature: add door system end remove multiple commentary

---------

Co-authored-by: AyakorK <guillaume.moret@yahoo.com>
Co-authored-by: Loule | Louis <35641311+Loule95450@users.noreply.github.com>

* feature: First try to add level move in Unity

* feat: fix Arrow, upgrade door system

* feat: Fix multiple problem

* fix: fix door teleport with disable player public selected

* feat: Add Menu system, update styling

* feat: Add Dialog system, add multiple coroutine for enable or disable dialog box

* feat: Level move (#7)

* feature: First try to add level move in Unity

* feat: fix Arrow, upgrade door system

* feat: Fix multiple problem

* fix: fix door teleport with disable player public selected

* feat: Addition of traps using sockets (#6)

* feat: Add auto implementation from website of traps

* chore: Add environment variables to UnityProject (#5)

* fix: Remove useless Log that was crashed

* fix(level_move): Replace hard-coded values ​​with variables for better flexibility

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

---------

Co-authored-by: Thomas Lamiable <lamiablethomas@gmail.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* feat: Add and fix prefab, add DevRoom prefab

* fix: fix door

* feat: Add Socket to props to send them to back-end (#8)

* feature: First try to add level move in Unity

* feat: fix Arrow, upgrade door system

* feat: Fix multiple problem

* fix: fix door teleport with disable player public selected

* feat: Addition of traps using sockets (#6)

* feat: Add auto implementation from website of traps

* chore: Add environment variables to UnityProject (#5)

* fix: Remove useless Log that was crashed

* feat: Add link to props using sockets

* feat: Add a unique socket system manager

---------

Co-authored-by: Thomas Lamiable <lamiablethomas@gmail.com>

* hotfix: Delete code duplication

* Feature/menu (#11)

* merge: Merge menu and develop and fix little issues (#10)

* merge: Merge develop to menu (#9)

* feat: Level move (#7)

* feature: First try to add level move in Unity

* feat: fix Arrow, upgrade door system

* feat: Fix multiple problem

* fix: fix door teleport with disable player public selected

* feat: Addition of traps using sockets (#6)

* feat: Add auto implementation from website of traps

* chore: Add environment variables to UnityProject (#5)

* fix: Remove useless Log that was crashed

* fix(level_move): Replace hard-coded values ​​with variables for better flexibility

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

---------

Co-authored-by: Thomas Lamiable <lamiablethomas@gmail.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* feat: Add Socket to props to send them to back-end (#8)

* feature: First try to add level move in Unity

* feat: fix Arrow, upgrade door system

* feat: Fix multiple problem

* fix: fix door teleport with disable player public selected

* feat: Addition of traps using sockets (#6)

* feat: Add auto implementation from website of traps

* chore: Add environment variables to UnityProject (#5)

* fix: Remove useless Log that was crashed

* feat: Add link to props using sockets

* feat: Add a unique socket system manager

---------

Co-authored-by: Thomas Lamiable <lamiablethomas@gmail.com>

---------

Co-authored-by: Thomas Lamiable <lamiablethomas@gmail.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* fix: Remove duplication of code

* fix: Fix Idle animation

---------

Co-authored-by: Thomas Lamiable <lamiablethomas@gmail.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* revert: Revert changes from EmptyRoom that breaked doors

* feat:Some menu option had

* feat: Add pause system, return to menu and restart game, fix OnLoadScene in unity for hard reset player state

* chore: remove commentary for trap manager

---------

Co-authored-by: Guillaume MORET <90462045+AyakorK@users.noreply.github.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: AyakorK <guillaume.moret@yahoo.com>

* fix: remove duplicata room

* feat: Add a visual timer prefab (V.1.0) (#12)

Co-authored-by: AyakorK <guillaume.moret@yahoo.com>

* feat: Add dynamic environment interaction system and new events (#13)

- Implement player interaction system with the environment
- Add dynamic room system:
  - Events now added based on room number and corridor-specific stages
  - Dynamic event generation based on the current floor
- New events added:
  - "Blacksmith"
  - "Altar" event allowing players to take one item
- Introduced IsCorridor detection system for dynamic instantiation and removal of corridor events
- Enhance item saving system to persist data across rooms, including inventory, dialogues, and more
- Implement full inventory system
- Add multiple UI elements, animations, and canvas for visual feedback

* fix: add removed line

* feat: Add waiting screen and fix some behaviors (#14)

* merge: Merge menu and develop and fix little issues (#10)

* merge: Merge develop to menu (#9)

* feat: Level move (#7)

* feature: First try to add level move in Unity

* feat: fix Arrow, upgrade door system

* feat: Fix multiple problem

* fix: fix door teleport with disable player public selected

* feat: Addition of traps using sockets (#6)

* feat: Add auto implementation from website of traps

* chore: Add environment variables to UnityProject (#5)

* fix: Remove useless Log that was crashed

* fix(level_move): Replace hard-coded values ​​with variables for better flexibility

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

---------

Co-authored-by: Thomas Lamiable <lamiablethomas@gmail.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* feat: Add Socket to props to send them to back-end (#8)

* feature: First try to add level move in Unity

* feat: fix Arrow, upgrade door system

* feat: Fix multiple problem

* fix: fix door teleport with disable player public selected

* feat: Addition of traps using sockets (#6)

* feat: Add auto implementation from website of traps

* chore: Add environment variables to UnityProject (#5)

* fix: Remove useless Log that was crashed

* feat: Add link to props using sockets

* feat: Add a unique socket system manager

---------

Co-authored-by: Thomas Lamiable <lamiablethomas@gmail.com>

---------

Co-authored-by: Thomas Lamiable <lamiablethomas@gmail.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* fix: Remove duplication of code

* fix: Fix Idle animation

---------

Co-authored-by: Thomas Lamiable <lamiablethomas@gmail.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* revert: Revert changes from EmptyRoom that breaked doors

* feat: V1.0 of WaitingScreen

* fix: Fix the way of sending props and remove the SocketManager from the player

* fix: Remove the Socket when leaving to the menu

* feat: Add the SocketManager to the Menu

* fix: Fix player animation and options text

---------

Co-authored-by: Thomas Lamiable <lamiablethomas@gmail.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* feat: Add trap persistance through rooms (#15)

* feat: Camera Control & Room enlargement (#16)

* feat: Try to update the camera of the user (a bit of a disaster by now)

* fix: Add good tracker Y limit for camera move, synch HUD with camera move

* fix: Fix the camera adapting to the scene

* feat: Get the room bigger

---------

Co-authored-by: Thomlam <lamiablethomas@gmail.com>

* feat: Modify the new room (#17)

* fix: Add a missing pillar

* fix: Crossbow positions (#18)

* fix: Fix the placement of the crossbows

* feat: Add hitboxes to crossbows

* fix: Remove useless traps spawns

* fix: Reorder correctly the crossbow prefabs

* Feature/add traps (#19)

* feature: Update some animations and system for the player, and add new trap

* feat: update EmptyRoom2 for test

---------

Co-authored-by: Guillaume MORET <90462045+AyakorK@users.noreply.github.com>

* fix: Trap management & improvements (#21)

* fix: Enlarge the gridSizeY to match the room and modify the level of the floor to fix traps

* feat: Improve doors and room and traps

* feat: Add walls on first room

* feat: Add bear_trap to trap manager

* hotfix: Remove bear_trap from the EmptyRoom

---------

Co-authored-by: Loule | Louis <35641311+Loule95450@users.noreply.github.com>
Co-authored-by: Thomas Lamiable <lamiablethomas@gmail.com>
Co-authored-by: Thomas Lamiable <86667484+Thomlam@users.noreply.github.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants