Skip to content

GUI Inventory Integration (Closes #41)#52

Merged
ultimateownsz merged 15 commits intoPyCeas:mainfrom
AnSiChen:feature/gui-inventory-integration-41
Dec 17, 2024
Merged

GUI Inventory Integration (Closes #41)#52
ultimateownsz merged 15 commits intoPyCeas:mainfrom
AnSiChen:feature/gui-inventory-integration-41

Conversation

@AnSiChen
Copy link
Contributor

PySeas: Inventory

This PR integrates an interactive GUI for managing the player's inventory, a game's core feature. It enhances user experience with features like item usage, removal, and real-time feedback while ensuring code quality through robust type-checking, formatting, and error handling, with added icons for further visual feedback.

pyseas-inventory.png

Key Implementations

Inventory Management in GUI:

  1. Scrollable item display with "Use" and "Discard" buttons.
  2. Real-time feedback for user actions displayed as messages.

Testing:

  • Verified functionality with unit tests for inventory and GUI components.

Progress on Issue #41

This PR addresses the following items:

  • The player can remove items from their inventory.
  • The player can add items to their inventory.
  • The player can open the inventory and view items.
  • The player can use an item from their inventory, which removes it.

Screenshots

Icon Integration:
[icon-logic-implemented.png

Using an Item:
use-item.png

Removing an Item:
remove-item.png

Documentation

Inventory Guide: Testing and Structure

  1. Visual display of items with names and quantities.
  2. Real-time interaction buttons and feedback.
  3. Modify inventory.json to add items for testing.
  4. Modify Initializer

Utils Guide(Related Implementation):

  1. Explains messaging.py for JSON-based messages for Dynamic Messages.
  2. Highlights modularity and expandability for future expansion or multilingual support.

Checklist

  • Features implemented as described.
  • Code reviewed for type-checking and linting (mypy, ruff).
  • Unit tests passed.
  • Documentation updated with visuals and usage examples.

Previously Also Considered:

Implementing in Fewer Files

  • This approach was not pursued as it did not promote modularization or scalability.

Using External Libraries for UI Design

  • While still being considered, this iteration focuses on addressing the issue using existing tools and frameworks.

Using Placeholders for Icons

  • This PR implements the foundational logic to transition from placeholders to real Sprite Sheet Images.

Potential Future Enhancements

  • Expand inventory visuals (e.g., add "Buy item" and "Loot" features).
  • Replace placeholder icons for certain inventory items to accurately represent each item in the Sprite Sheet.

Copy link
Collaborator

@ultimateownsz ultimateownsz left a comment

Choose a reason for hiding this comment

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

Hey, thank you for your pull request! I wrote down my thoughts on some things you need to adjust a bit. The unittest didn't work at my end. Perhaps I did something wrong. Let me know if so!

@ultimateownsz ultimateownsz added type:enhancement For adding new functionality or improving existing code type:documentation For PRs that update documentation labels Nov 29, 2024
- Added __init__.py files for package structure

- Updated tests/test_inventory.py with sys.path fix and improvements

- Revised docs/InventoryGuide.md to include test instructions

- Added comments to inventory_gui.py for sprite loading logic
@AnSiChen
Copy link
Contributor Author

AnSiChen commented Dec 9, 2024

Hi all, I've pushed the latest changes based on feedback and updates.

Summary of Updates:

  • Added __init__.py files for package structure.
  • Updated tests/test_inventory.py to fix sys.path for direct execution. (Alternatively use pytest)
  • Revised docs/InventoryGuide.md to include test instructions.
  • Added comments to inventory_gui.py to remind everyone of the nature of the current implementation.
    • (Once this last point has been addressed or we implement "Buy", "Add" or related in-game feature we can proceed to replace it. As explained in the PR discussion, we do not currently have a way to test the inventory, so for now it could be fine until we move forward.)

All tests, ruff, and mypy checks pass locally. Please let me know if further adjustments are needed. Thank you for reviewing!

Copy link
Collaborator

@ultimateownsz ultimateownsz left a comment

Choose a reason for hiding this comment

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

Hey, thank you for your changes, before I can check your PR, there are some changes made to the codebase. You should use get pull from the main branch to see the latest changes. And update your own branch with those changes. Thanks in advance!

@AnSiChen AnSiChen force-pushed the feature/gui-inventory-integration-41 branch from e5610bf to 9e0a871 Compare December 9, 2024 09:50
Copy link
Collaborator

@ultimateownsz ultimateownsz left a comment

Choose a reason for hiding this comment

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

Thank you for your changes, sorry for the long wait, I was busy and was also sick for a few days. I will contact you in Discord for new tasks to pickup, my idea is to create a roadmap for PySeas to prioritize what needs to be worked on to create the working prototype! All input is appreciated!

@ultimateownsz ultimateownsz merged commit 901a8f0 into PyCeas:main Dec 17, 2024
1 check passed
ultimateownsz added a commit that referenced this pull request Feb 12, 2025
commit 60004a7
Merge: b694eca 7b98805
Author: Danilo <144124813+ultimateownsz@users.noreply.github.com>
Date:   Sun Feb 9 13:28:09 2025 +0100

    Remove old cli codebase to new repo (#95)

    # Code Pull Request Template

    ## Summary
    <!--
    INSTRUCTIONS:
    - Briefly describe the purpose of this pull request.
    -->
    This PR modifies the CLI codebase, all the old command line interface
    reference is removed and is moved to its own private repository for now.
    It will be made public later, to always have a reference to look at, or
    if you don't want to change code in pygame you can work in the classic
    repository.

    Also:
    - Moved an old unit test from the CLI codebase to that specific
    repository.
    - Some images we used as reference to create the board layout is moved
    to the other repository.
    - Furthermore I removed some other references that implicitly were used
    to have a launcher of some sorts.
    - Nothing is changed from the pygame loop, only the command line
    interface references!

    ## Related Issues
    <!--
    INSTRUCTIONS:
    - Mention related issue numbers here.
    - Example: "Fixes #123, Closes #456."
    -->

    This PR <!-- fixes|closes|addresses --> issue(s) <!-- (e.g., Fixes #123,
    Closes #456) -->

    ---

    <!-- ## Media
    # Add screenshots, GIFs, or videos if applicable. If not, delete this
    section.
    -->

    ## ✅ Checklist:

    - [x] 🛠️ I have tested my code, and it works as expected (e.g., game
    runs without errors).
    - [x] 📝 I have made sure that the code follows the project's formatting
    and style guidelines.

    Optional:
      - [ ] 💬 Code is commented (if applicable)

    ---

    ## 🏷️ Labels:
    <!--
    INSTRUCTIONS:
    - Add labels to describe the purpose of this PR.
    - Examples:
      - **Type**:
        - `type: enhancement` – For improving existing functionality.
        - `type: bug fix` – For fixing issues in the code.
        - `type: refactor` – For optimizing or cleaning up code.
        - `type: feature` – For adding new features.
      - **Area**:
        - `area: gameplay` – For changes affecting core game mechanics.
        - `area: assets` – For updates to sprites, textures, or UI.
        - `area: audio` – For sound effects or music updates.
      - **Game**:
    - `game: mechanics` – For changes to combat, movement, or game systems.
        - `game: UI` – For updates to the user interface or HUD.
        - `game: animations` – For animation-related changes.
    -->
      - `type: ...`
      - `area: ...`
      - `game: ...`

commit 7b98805
Author: ultimateownsz <saiutechnologies@outlook.com>
Date:   Tue Feb 4 21:07:22 2025 +0100

    fixed ruff formatter

    after running ruff it made the code more clear to read

commit 540062c
Author: ultimateownsz <saiutechnologies@outlook.com>
Date:   Tue Feb 4 20:41:25 2025 +0100

    moved old layout board to new repo

    these two files were used while creating the command line interface pyceas game

commit ef3c107
Author: ultimateownsz <saiutechnologies@outlook.com>
Date:   Tue Feb 4 20:34:32 2025 +0100

    removed old commented code

    this will remove the old reference to the different versions, to make it more clear that our main focus will be pygame

commit 57e4beb
Author: ultimateownsz <saiutechnologies@outlook.com>
Date:   Tue Feb 4 20:33:17 2025 +0100

    old codebase refs deleted

    all files are moved to its own repo, for now the repo is set to private to fix any issues before making it public

commit b694eca
Merge: 1470725 b09c79a
Author: Danilo <144124813+ultimateownsz@users.noreply.github.com>
Date:   Thu Jan 9 21:51:57 2025 +0100

    add a skeleton for the FSM, the basic architecture. (#89)

    # Finite State Machine

    ## Summary

    This PR add the base of the Finite State Machine
    It's just a draft, so we can discuss how to implement that essential
    feature, which need to be scalable and clear (i mean understandable,
    readable). This is an exemple of how we could use classes as states.

    ## Related Issues
    related to #83, the state manager

    ## ✅ Checklist:

    - [x] 🛠️ I have tested my code, and it works as expected (e.g., game
    runs without errors).
    - [x] 📝 I have made sure that the code follows the project's formatting
    and style guidelines.
      - [x] 💬 Code is commented (if applicable)

commit b09c79a
Author: marcel <marcel.phippen@proton.me>
Date:   Thu Jan 9 16:13:40 2025 +0100

    fix: add docstrings and renamed gameloop to game_manager

commit 8aa0ed0
Author: marcel <marcel.phippen@proton.me>
Date:   Wed Jan 8 08:31:48 2025 +0100

    feat: add debug representation, and some stack exeption handling.

commit 8f2f25c
Author: marcel <marcel.phippen@proton.me>
Date:   Sun Jan 5 22:57:55 2025 +0100

    fixed inventory

commit 1386550
Author: marcel <marcel.phippen@proton.me>
Date:   Sun Jan 5 22:27:08 2025 +0100

    revert delete CLI

commit edade4d
Author: marcel <marcel.phippen@proton.me>
Date:   Sun Jan 5 17:46:50 2025 +0100

    fix most of pylint

commit f6b8aae
Author: marcel <marcel.phippen@proton.me>
Date:   Sun Jan 5 17:22:40 2025 +0100

    fix mypy and ruff

commit 5f52ba1
Author: marcel <marcel.phippen@proton.me>
Date:   Sun Jan 5 17:17:50 2025 +0100

    moved current logic into states

commit ac715a7
Author: marcel <marcel.phippen@proton.me>
Date:   Sat Jan 4 01:19:14 2025 +0100

    moved game logic to GameRunning and general cleanup

commit 55522c2
Author: marcel <marcel.phippen@proton.me>
Date:   Tue Dec 31 15:18:59 2024 +0100

    add a skeleton for the FSM, the basic architecture.

commit 1470725
Author: Danilo <144124813+ultimateownsz@users.noreply.github.com>
Date:   Thu Dec 26 15:31:44 2024 +0100

    Update README.md

    Adds GitHub discussions link directly in the README

commit a861a83
Author: Danilo <144124813+ultimateownsz@users.noreply.github.com>
Date:   Sat Dec 21 01:26:17 2024 +0100

    Update user_story_issue_template.md

    Update the template to remove unused examples to make it easier for contributors to fill in information, instead of seeing the actual example from the template. The examples can still be seen, but they are now comments.

    Added the original idea to add the ability to convert tasks into separate issues.

commit 901a8f0
Merge: df753f3 9e0a871
Author: Danilo <144124813+ultimateownsz@users.noreply.github.com>
Date:   Tue Dec 17 12:53:09 2024 +0100

    GUI Inventory Integration (Closes #41) (#52)

    ## PySeas: Inventory

    This PR integrates an interactive GUI for managing the player's
    inventory, a **game's core feature**. It enhances user experience with
    features like item usage, removal, and real-time feedback while ensuring
    code quality through robust type-checking, formatting, and error
    handling, with added icons for further visual feedback.

    [![pyseas-inventory.png](https://i.postimg.cc/G3ZXHdnK/pyseas-inventory.png)](https://postimg.cc/14rGdxtV)

    ### **Key Implementations**

    **Inventory Management in GUI:**

    1. Scrollable item display with "Use" and "Discard" buttons.
    2. Real-time feedback for user actions displayed as messages.

    **Testing:**

    - Verified functionality with unit tests for inventory and GUI
    components.

    ### Progress on Issue #41
    **This PR addresses the following items:**

    - [x]  The player can remove items from their inventory.
    - [x]  The player can add items to their inventory.
    - [x]  The player can open the inventory and view items.
    - [x] The player can use an item from their inventory, which removes it.

    ### Screenshots

    **Icon Integration:**

    [![icon-logic-implemented.png](https://i.postimg.cc/jdkyTsKs/icon-logic-implemented.png)

    **Using an Item:**

    [![use-item.png](https://i.postimg.cc/9fK7JXpN/use-item.png)](https://postimg.cc/Y4N0SHT1)

    **Removing an Item:**

    [![remove-item.png](https://i.postimg.cc/QCkK8QrR/remove-item.png)](https://postimg.cc/H8nk37n2)

    ### **Documentation**

    **Inventory Guide: Testing and Structure**
    1. Visual display of items with names and quantities.
    2. Real-time interaction buttons and feedback.
    3. Modify inventory.json to add items for testing.
    4. Modify Initializer

    **Utils Guide(Related Implementation):**
    1. Explains messaging.py for JSON-based messages for Dynamic Messages.
    2. Highlights modularity and expandability for future expansion or
    multilingual support.

    ### **Checklist**

    - [x]  Features implemented as described.
    - [x]  Code reviewed for type-checking and linting (mypy, ruff).
    - [x]  Unit tests passed.
    - [x]  Documentation updated with visuals and usage examples.

    ### Previously Also Considered:

    **Implementing in Fewer Files**

    - This approach was not pursued as it did not promote modularization or
    scalability.

    **Using External Libraries for UI Design**

    - While still being considered, this iteration focuses on addressing the
    issue using existing tools and frameworks.

    **Using Placeholders for Icons**

    - This PR implements the foundational logic to transition from
    placeholders to real Sprite Sheet Images.

    ### **Potential Future Enhancements**

    - Expand inventory visuals (e.g., add "Buy item" and "Loot" features).
    - Replace placeholder icons for certain inventory items to accurately
    represent each item in the Sprite Sheet.

commit 9e0a871
Merge: 59daae8 df753f3
Author: AnSiChen <anthony3em@gmail.com>
Date:   Mon Dec 9 17:28:49 2024 +0800

    Merge main into feature/gui-inventory-integration-41 and resolve conflicts

commit 59daae8
Author: AnSiChen <anthony3em@gmail.com>
Date:   Mon Dec 9 10:59:05 2024 +0800

    refactor: add __init__.py, update tests and docs

    - Added __init__.py files for package structure

    - Updated tests/test_inventory.py with sys.path fix and improvements

    - Revised docs/InventoryGuide.md to include test instructions

    - Added comments to inventory_gui.py for sprite loading logic

commit df753f3
Merge: c0c1e30 b7a90b4
Author: Davidek523 <davidov520@wp.pl>
Date:   Sat Dec 7 20:21:13 2024 +0100

    refactor(gdd): streamline structure and enhance contributor engagement (#60)

    # Documentation Pull Request Template

    ## Summary
    <!--
    INSTRUCTIONS:
    - Briefly describe the purpose of this pull request.
    - Mention the documentation files updates, created, or removed.
    -->
    This PR modifies the Game Design Document (GDD) to improve clarity,
    reduce redundancy, and enhance accessibility for contributors. The
    updates aim to create a more engaging and structured document that
    reflects PySeas' vision while maintaining its usability for developers,
    artists, and designers.

    Why This Change Is Necessary

    The previous structure contained overlapping sections and redundant
    explanations, which could confuse contributors and dilute the GDD's
    impact. These changes provide a clear structure, better alignment with
    the project’s goals, and an improved user experience for potential
    collaborators.

    Impact

    - Makes the GDD easier to navigate and understand for new contributors.
    - Provides a clearer vision for design, thematic, and artistic elements.
    - Reduces duplication and improves alignment between sections.
    - Strengthens the GDD as a collaborative foundation for PySeas
    development.

    ## Related Issues
    <!--
    INSTRUCTIONS:
    - Mention related issue numbers here.
    - Example: "Fixes #123, Closes #456."
    -->

    This PR <!-- fixes|closes|addresses --> issue(s) <!-- (e.g., Fixes #123,
    Closes #456) -->

    ---

    <!-- ## Media
    # Add screenshots, GIFs, or videos if applicable. If not, delete this
    section.
    -->

    ## ✅ Checklist:

    - [x] 📄 I have reviewed the documentation for grammar and spelling
    errors.
    - [x] 📝 All links and references in the documentation are valid and
    functional.

    Optional:
    - [ ] 📸 Screenshots, visuals, or diagrams have been added where
    applicable.
    - [ ] ✍️ Examples or code snippets are provided to clarify complex
    concepts (if applicable).

    ---

    ## 🏷️ Labels:
    <!--
    INSTRUCTIONS:
    - Add labels to describe the purpose of this PR.
    - Examples:
      - **Type**:
        - `type: enhancement` – For improving existing functionality.
        - `type: bug fix` – For fixing issues in the code.
        - `type: refactor` – For optimizing or cleaning up code.
        - `type: feature` – For adding new features.
      - **Area**:
        - `area: gameplay` – For changes affecting core game mechanics.
        - `area: assets` – For updates to sprites, textures, or UI.
        - `area: audio` – For sound effects or music updates.
      - **Game**:
    - `game: mechanics` – For changes to combat, movement, or game systems.
        - `game: UI` – For updates to the user interface or HUD.
        - `game: animations` – For animation-related changes.
    -->
      - `type: enhancement`
      - `type: documentation`
      - `game: ...`

commit b7a90b4
Author: ultimateownsz <saiutechnologies@outlook.com>
Date:   Sat Dec 7 12:35:07 2024 +0100

    refactor(gdd): streamline structure and enhance contributor engagement

    - Merged Design Pillars and Thematic Pillars into Design and Thematic Pillars.
    - Consolidated Player Experience and Gameplay Overview into Player Experience & Gameplay Loop.
    - Added links in Key Terms to reference related sections.
    - Enhanced readability with a blended formal and thematic tone.
    - Removed duplicate content and clarified overlapping sections.
    - Improved language and transitions for better contributor accessibility.
    - Added visual images to the inspiration section.

commit c0c1e30
Merge: c947858 cbcbb09
Author: Danilo <144124813+ultimateownsz@users.noreply.github.com>
Date:   Sun Dec 1 20:27:15 2024 +0100

    Camera system (Closes #44) (#55)

    # Pull Request Template

    # Code Pull Request Template

    ## Summary
    <!--
    INSTRUCTIONS:
    - Briefly describe the purpose of this pull request.
    -->
    This PR <!-- adds|modifies|fixes --> adds camera system and modifies
    player's movement <!-- Briefly explain what the PR changes. --> This PR
    adds a functional camera system to the game. It means that the screen
    will follow the player everywhere they move. I achieved this by adding a
    new class in sprites.py named AllSprites. It's a sprite group class that
    takes all the sprites in the sprite group and implements the camera
    logic on them.

    For this I added the Player class to the sprite group and changed the
    all_sprite variable in the gameloop. It uses now the AllSprites class
    instead of making the sprite group directly in gameloop.

    I also added a new movement method in the Player class and commented the
    old one. When debuggin the camera I experienced the original movement
    method slow and quite static with a couple of bugs so I used a movement
    that uses WSAD keys as input. This way the movement was quick and smooth
    in my experience.

    ## Related Issues
    <!--
    INSTRUCTIONS:
    - Mention related issue numbers here.
    - Example: "Fixes #123, Closes #456."
    -->

    This PR <!-- fixes|closes|addresses --> Closes Issue #44 <!-- (e.g.,
    Fixes #123, Closes #456) -->

    ---

    ## ✅ Checklist:

    - [x] 🛠️ I have tested my code, and it works as expected (e.g., game
    runs without errors).
    - [x] 📝 I have made sure that the code follows the project's formatting
    and style guidelines.

    Optional:
      - [x] 💬 Code is commented (if applicable)

    ---

    ## 🏷️ Labels:
    <!--
    INSTRUCTIONS:
    - Add labels to describe the purpose of this PR.
    - Examples:
      - **Type**:
        - `type: enhancement` – For improving existing functionality.
        - `type: bug fix` – For fixing issues in the code.
        - `type: refactor` – For optimizing or cleaning up code.
        - `type: feature` – For adding new features.
      - **Area**:
        - `area: gameplay` – For changes affecting core game mechanics.
        - `area: assets` – For updates to sprites, textures, or UI.
        - `area: audio` – For sound effects or music updates.
      - **Game**:
    - `game: mechanics` – For changes to combat, movement, or game systems.
        - `game: UI` – For updates to the user interface or HUD.
        - `game: animations` – For animation-related changes.
    -->
      - `type: feature`
      - `area: gameplay`
      - `area: assets`
      - `game: mechanics`

commit cbcbb09
Author: Davidek523 <davidov520@wp.pl>
Date:   Sun Dec 1 20:10:11 2024 +0100

    Fix issue

    Fixing lint_typhints issues

commit 8df49e4
Author: Davidek523 <davidov520@wp.pl>
Date:   Sun Dec 1 19:58:22 2024 +0100

    Fixed movement method

    Changed:
    - Got rid of the Debug movement method.
    - Added again the ghost preview method.
    - Fixed player drawing issue.

commit c947858
Merge: 9e7477d ccb19f9
Author: Davidek523 <davidov520@wp.pl>
Date:   Fri Nov 29 23:29:56 2024 +0100

    Making Pull Requests more clear, users need to copy and paste PR template they desire (#56)

    # Documentation Pull Request Template

    ## Summary
    <!--
    INSTRUCTIONS:
    - Briefly describe the purpose of this pull request.
    - Mention the documentation files updates, created, or removed.
    -->
    This PR <!-- adds|modifies|fixes --> ... <!-- Briefly explain what the
    PR changes. --> fixes the pull request workflow. It was not clear that
    you had to copy and paste the PR template you like to use for your PR.
    Now it is more clearly defined!

    ## Related Issues
    <!--
    INSTRUCTIONS:
    - Mention related issue numbers here.
    - Example: "Fixes #123, Closes #456."
    -->

    This PR <!-- fixes|closes|addresses --> issue(s) <!-- (e.g., Fixes #123,
    Closes #456) -->

    ---

    <!-- ## Media
    # Add screenshots, GIFs, or videos if applicable. If not, delete this
    section.
    -->

    ## ✅ Checklist:

    - [x] 📄 I have reviewed the documentation for grammar and spelling
    errors.
    - [x] 📝 All links and references in the documentation are valid and
    functional.

    Optional:
    - [ ] 📸 Screenshots, visuals, or diagrams have been added where
    applicable.
    - [ ] ✍️ Examples or code snippets are provided to clarify complex
    concepts (if applicable).

    ---

    ## 🏷️ Labels:
      - `type: enhancement`
      - `type: documentation`

commit ccb19f9
Merge: 234a401 9e7477d
Author: Danilo <144124813+ultimateownsz@users.noreply.github.com>
Date:   Fri Nov 29 21:02:34 2024 +0100

    Merge branch 'main' into update-PR-templates

commit 234a401
Author: ultimateownsz <saiutechnologies@outlook.com>
Date:   Fri Nov 29 20:40:15 2024 +0100

    fix(templates): clarifying users need to copy and paste the desired template for their PR

    Links to specific templates for code, documentation, reverts, assets, and audio changes are updated.

    BREAKING CHANGE: Making it more clear that you need to copy and paste the PR template you desire for your pull request. There is no alternative yet, like what we have with Issue templates.

commit 0c1bb1a
Author: Davidek523 <davidov520@wp.pl>
Date:   Fri Nov 29 18:58:20 2024 +0100

    Fixed pr bug

    TILE_SIZE was not used

commit 14b5827
Author: Davidek523 <davidov520@wp.pl>
Date:   Fri Nov 29 18:49:51 2024 +0100

    Debugging movement method

    Added:
    - A new quicker to use movement method that uses arrow keys as input instead of mouse click input
    - Did not delete the old method, just commented it out for debugging purposes and easier use

commit cd11856
Author: Davidek523 <davidov520@wp.pl>
Date:   Fri Nov 29 00:19:16 2024 +0100

    Camera and tmx file

    Added:
    - Camera class to the sprites.cs
    - Implemented the camera class in the gameloop.cs

    Changed:
    - New for loop in setup for objects (players)
    - Deleted Ships layer in tmx_map
    - Replaced Ships with Ships objects and added start positions

commit 9e7477d
Merge: 82798b2 b0c75ba
Author: Danilo <144124813+ultimateownsz@users.noreply.github.com>
Date:   Thu Nov 28 23:28:46 2024 +0100

    refactor(templates): split big PR template into multiple focused temp… (#53)

    The original PR template was too complex and included multiple
    categories, making it harder for contributors to follow.

    This commit:
    - Splits the big PR template into smaller, focused templates for code,
    documentation, assets, audio, and reverts.
    - Reduces complexity by streamlining checklists and instructions.
    - Improves contributor experience by guiding them to select the
    appropriate template for their changes.

    <!--
    REMINDER:
    - Complete all sections labeled as (MUST).
    - Use the checkboxes to ensure all necessary tasks are completed before
    submitting.
    - (FOR REVIEWERS) ~ Review the "Code Review Checklist" to confirm
    everything is ready for merging.
    -->

    # Pull Request Template

    ---

    ## Types of Changes (MUST)
    <!--
    INSTRUCTIONS:
    - Select all the types of changes that apply to this pull request.
    - Use "Breaking change" for changes that modify or remove existing
    functionality.
    -->
    **Tip**: Check all applicable types of changes:

    ### Code Changes
    - [ ] 🛠️ Code optimization/refactoring
    - [ ] 🐛 Bug fix (fixes an existing issue)
    - [ ] ✨ New feature (adds functionality)

    ### Visual/Gameplay Changes
    - [ ] 🎨 Visual improvement (e.g., sprites, UI updates)
    - [ ] 🎮 Gameplay improvement (e.g., mechanics, level design)
    - [ ] 🎵 Music/audio update (e.g., new background music, sound effects)
    - [ ] 🎨 Asset addition or update (e.g., sprites, textures, models)

    ### Other Changes
    - [x] 📝 Documentation update
    - [x] ⚠️ Breaking change (modifies existing functionality)

    ---

    ## Summary of Changes (MUST)
    <!--
    INSTRUCTIONS:
    - Briefly describe the purpose of this pull request.
    - Mention any related issue numbers (e.g., "Fixes #123").
    - Explain what the PR implements, enhances, or fixes.
    -->

    **Summary**: This PR fixes the complexity this PR template had, I
    thought this PR template was good enough, but It made the PR more
    complex. That's why I chose to add templates, one for each change: code,
    docs, revert etc. I also removed the conventional commits in the PR
    because it was not useful while creating a PR. Let's say you had no
    conventional commits prior, it would leave the action not very useful in
    a PR.

    **Related Issues**:  None

    ---

    ## Pull Request Checklist [FOR PULL REQUESTER]
    <!--
    INSTRUCTIONS (FOR PULL REQUESTER):
    - Check each box to confirm you have completed these steps before
    submitting your pull request.
    - This checklist ensures the quality and readiness of the pull request
    for review.
    -->
    **Tip**: Use this checklist to confirm you’ve completed all essential
    steps before submission:

    ### General
    - [ ] ✅ I have tested my code, and it works as expected (e.g., game runs
    without errors).
    - [ ] 📝 The description clearly explains the changes made.
    - [ ] 🔗 Any related issues are linked in the summary above. (optional)

    ### Code Quality
    - [ ] 🔍 Code is reviewed for clarity and quality.
    - [ ] 📖 Variables, functions, and methods are named clearly
    - [ ] 🛡️ Error handling is implemented where applicable.

    ### Gameplay Testing
    - [ ] 🎮 Gameplay features are tested for functionality.
    - [ ] 🧪 Edge cases and player inputs have been verified.

    ### Assets (Visual & Audio)
    - [ ] 🎨 Visual assets are properly integrated (e.g., sprite alignment,
    texture quality).
    - [ ] 🎵 Audio/music assets are tested (e.g., volume levels, correct
    triggers).

    ### Conventional Commits
    - [x] 📝 All commits follow the [Conventional Commits
    format](https://www.conventionalcommits.org/):
      - `<type>(<scope>): <description>`
      - Example:
        ```plaintext
        feat(level): add new enemy AI
        fix(sprite): resolve texture alignment issue
        docs(readme): update contributing guidelines
        ```

    ---

    ## Code Reviewer Checklist [FOR REVIEWERS ONLY]
    <!--
    INSTRUCTIONS FOR REVIEWERS:
    - Use this checklist to ensure the pull request meets quality standards.
    -->
    **Tip**: Use this checklist to confirm the code is ready to merge:

    ### Code Quality
    - [ ] 📖 Code is easy to read and understand.
    - [ ] 🧹 No unused or commented-out code remains.
    - [ ] 💬 Relevant comments are added for clarity.
    - [ ] 🔤 Variables and functions are named clearly and consistently.

    ### Gameplay and Visuals
    - [ ] 🎮 Gameplay is smooth, functional, and free of major bugs.
    - [ ] 🎨 Visuals (e.g., sprites, UI) are consistent and fit the game's
    style.
    - [ ] 🎵 Music/audio is functional, and volume levels are appropriate.
    - [ ] 🎨 Visual assets are aligned and of high quality.

    ### Functionality
    - [ ] 🧪 Tests (manual or automated) are included for key features.
    (optional)
    - [ ] 🛡️ Errors are handled appropriately (e.g., player input
    validation). (optional)

    ### Commit Messages
    - [ ] ✅ All commits follow the Conventional Commits format.

    ### Review Comments [IF APPLICABLE]
    <!-- INSTRUCTIONS: - Use this section to provide feedback if any
    checklist items are not met. - Suggest alternatives or solutions where
    applicable. -->

    **Explanation for any unchecked items:** _(e.g., "Tests for the new AI
    feature are missing. Please add them before merging.")_

    ---

    ## Final Review Checklist
    <!--
    INSTRUCTIONS:
    - Use this checklist to confirm all necessary testing, documentation,
    and preparation for merging is complete.
    -->

    **Tip**: Confirm everything is complete and ready for merge:

    ### Gameplay Testing
    - [ ] 🎮 All features have been tested in gameplay.

    ### Code Quality
    - [ ] 📖 Code is reviewed and maintainable.
    - [ ] 📝 Required documentation is updated.

    ### Commit Messages
    - [ ] ✅ Commit messages follow the Conventional Commits format.

    ### Merge Readiness
    - [ ] 🚀 This pull request is ready for merge.

commit b0c75ba
Author: ultimateownsz <saiutechnologies@outlook.com>
Date:   Thu Nov 28 23:20:26 2024 +0100

    refactor(templates): split big PR template into multiple focused templates

    The original PR template was too complex and included multiple categories, making it harder for contributors to follow.

    This commit:
    - Splits the big PR template into smaller, focused templates for code, documentation, assets, audio, and reverts.
    - Reduces complexity by streamlining checklists and instructions.
    - Improves contributor experience by guiding them to select the appropriate template for their changes.

commit 82798b2
Author: Danilo <144124813+ultimateownsz@users.noreply.github.com>
Date:   Wed Nov 27 22:54:57 2024 +0100

    fix(docs) resolve images/gifs not being load correctly

    - This fixes the Game Design Document, the `assets` folder name needed capital `A`, in order to load the correct images/gifs.
    - Aligned the images better with correct sizes with html, css formats.
    - Added a reference to the GitHub task list & Discord Server
    - Added LibreSprite as optional software use.

commit 73c7bf2
Merge: 778c9d1 566c39a
Author: Danilo <144124813+ultimateownsz@users.noreply.github.com>
Date:   Tue Nov 26 22:29:22 2024 +0100

    Update markdown files (#51)

    1. Enhanced README.md:
    - Introduces a table of contents for easier navigation
    - Added references to CONTRIBUTING.md and enhancement.md

    2. Updated CONTRIBUTING.md
    - Improved the suggestion enhancements section to link to the dedicated
    enhancement.md
    - Clarified how we handle issues section by referencing the user story
    based template
    - Enhanced clarity on how to contribute for new and experiences
    contributors
    - Added a reference to Conventional Commits

    3. Created enhancement
    - A new dedicated guide for proposing enhancements, with examples and
    key differences for new vs experienced contributors.
    - Added steps for submitting enhancements and expectations for
    contributors

    4. Improved bug reporting guidance
    - Updates the readme.md to include links to the contributing.md for
    detailed bug reporting and enhancement suggestions
    - Incorporated tools like LICEcap and Peek for visual bug reporting

    5. Added SECURITY.md
    - Detailed instructions for reporting vulnerabilities via email or
    GitHub Security Advisories.
    - Added optional guidance for contributors to include GIFs or videos
    using tools like LICEcap or Peek to demonstrate vulnerabilities.
    - Clarified that the project is under active development, with no
    official version released yet.
    - Outlined how all updates are applied to the latest codebase in the
    main branch.
    - Defined response times for acknowledging reports and resolving issues.
    - Stated public disclosure practices, ensuring coordination with
    reporters.

    6. Added a pull request template
    - Adding sections for code, gameplay, and asset-related changes.
    - Enhancing clarity with categorized checklists for contributors and reviewers.
    - Ensuring consistency with Conventional Commits examples.

commit 25e1c06
Author: AnSiChen <anthony3em@gmail.com>
Date:   Thu Nov 21 20:50:47 2024 +0800

    fix: resolve type issues, formatting, and update style

commit 7d91572
Author: AnSiChen <anthony3em@gmail.com>
Date:   Thu Nov 21 20:15:27 2024 +0800

    tests: Add inventory.py tests

commit 824f8ad
Author: AnSiChen <anthony3em@gmail.com>
Date:   Thu Nov 21 20:01:16 2024 +0800

    chore: Include pytest to requirements_dev.txt for tests

commit 6e98cd6
Author: AnSiChen <anthony3em@gmail.com>
Date:   Thu Nov 21 19:50:48 2024 +0800

    docs: Add documentation for Inventory and Utils(related functionality)

commit 69943c7
Author: AnSiChen <anthony3em@gmail.com>
Date:   Thu Nov 21 18:27:57 2024 +0800

    feat: expand inventory.json and implement new sample icons in InventoryGUI class

commit 11ecc7e
Author: AnSiChen <anthony3em@gmail.com>
Date:   Thu Nov 21 17:52:21 2024 +0800

    feat: Add scrolling and messsage background to inventory

commit 13904aa
Author: AnSiChen <anthony3em@gmail.com>
Date:   Thu Nov 21 16:40:57 2024 +0800

    feat: integrate icons for inventory

commit f481cff
Author: AnSiChen <anthony3em@gmail.com>
Date:   Thu Nov 21 15:31:14 2024 +0800

    feat: add in-game action messages for inventory interactions.

commit 4135fd8
Author: AnSiChen <anthony3em@gmail.com>
Date:   Thu Nov 21 15:06:40 2024 +0800

    feat: initialize inventory items from JSON

commit e3cf14c
Author: AnSiChen <anthony3em@gmail.com>
Date:   Thu Nov 21 14:22:51 2024 +0800

    feat: add interactive buttons for the inventory item management

commit 4e01320
Author: AnSiChen <anthony3em@gmail.com>
Date:   Thu Nov 21 13:42:59 2024 +0800

    feat: implement inventory overlay with solid background

commit 75cf575
Author: AnSiChen <anthony3em@gmail.com>
Date:   Thu Nov 21 12:40:02 2024 +0800

    feat: add JSON-based dynamic messaging for inventory actions.

commit e279bb5
Author: AnSiChen <anthony3em@gmail.com>
Date:   Thu Nov 21 12:20:37 2024 +0800

    feat: extend Inventory class with dynamic item management.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

type:documentation For PRs that update documentation type:enhancement For adding new functionality or improving existing code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

Comments