Skip to content

feat: Cataphractii armour added and improve modding#895

Merged
OH296 merged 10 commits intoAdeptus-Dominus:mainfrom
OH296:cata_armour_add
Jun 29, 2025
Merged

feat: Cataphractii armour added and improve modding#895
OH296 merged 10 commits intoAdeptus-Dominus:mainfrom
OH296:cata_armour_add

Conversation

@OH296
Copy link
Copy Markdown
Collaborator

@OH296 OH296 commented Jun 29, 2025

Purpose and Description

  • Self-descriptive.

Testing done

  • None, and I understand the risks.

Related things and/or additional context

@github-actions github-actions bot added Area: JSON Changes to external JSON files or their under-the-hood functionality Area: Sprites Changes to sprites/images or their under-the-hood functionality Size: Warning Type: Feature Adds something new labels Jun 29, 2025
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai bot commented Jun 29, 2025

Important

Review skipped

Auto incremental reviews are disabled on this repository.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

📝 Walkthrough

Summary by CodeRabbit

  • New Features

    • Added a new "Cataphractii Pattern Terminator" armour set, including a comprehensive suite of new visual sprites and modular components.
    • Introduced new visual sets for the "Crusader" culture, with additional customisation options and hierarchical layering.
    • Enhanced modular sprite system to support subcomponents, enabling more detailed and varied character visuals.
    • Added a blank sprite resource for improved visual handling.
  • Improvements

    • Updated dialogue scripting for clarity and maintainability, with improved string handling and option management.
    • Expanded support for terminator armour selection in marine generation.
  • Bug Fixes

    • Improved validation and referencing of sprite overrides and subcomponents to ensure correct visual rendering.
  • Style

    • Updated sprite metadata and formatting for consistency and clarity across multiple resources.

Walkthrough

Behold, the Omnissiah's will manifests in the augmentation of the ChapterMaster project. A new "Cataphractii Pattern Terminator" armour set, complete with complex modular sprites, subcomponent logic, and Crusader visual set data, is integrated. Macro lists, dialogue handling, and modular visual overrides are also updated. No existing entities are purged.

Changes

Files / Groups Change Summary
ChapterMaster.yyp, sprites/spr_cata_*, sprites/spr_blank/spr_blank.yy Added new folder "cata_complex", new Crusader_bits data and PNGs, new blank sprite, and a full set of "spr_cata_*" modular sprites for Cataphractii Pattern Terminator armour.
datafiles/main/visual_sets/Crusader_bits/data.json Introduced Crusader visual set definitions with hierarchical subcomponents and metadata for "torse", "torse_with_hood", and "topfhelm".
datafiles/main/visual_sets/use_sets.json Prepended "Crusader_bits" to the visual sets usage array.
scripts/macros/macros.gml Appended "Cataphractii Pattern Terminator" to the terminator armour macro list.
scripts/scr_ComplexSet/scr_ComplexSet.gml Overhauled ComplexSet: added subcomponents structure, extended assign/add/replace/remove/draw functions for subcomponents, updated variation map, draw order, and new Cataphractii Pattern Terminator armour logic.
scripts/scr_culture_visuals/scr_culture_visuals.gml Added debug logs, set_up_visual_overides function, expanded modular drawing items with Cataphractii assets, updated DummyMarine armour logic, and added hanging_variant to marine body generation.
scripts/scr_dialogue/scr_dialogue.gml Refactored dialogue: wrapped in controller context, replaced manual option handling with function calls, improved string handling, and clarified battle initiation logic. No external signature changes.
sprites/spr_buy_tiny/spr_buy_tiny.yy, sprites/spr_sell_tiny/spr_sell_tiny.yy Updated sprite format/version tags and minor JSON structure in keyframes.
sprites/spr_data_slate_border/spr_data_slate_border.yy, sprites/spr_disposition_small/spr_disposition_small.yy, sprites/spr_icon_change/spr_icon_change.yy, sprites/spr_indomitus_/spr_indomitus_.yy, sprites/spr_inspect_small/spr_inspect_small.yy, sprites/spr_loading2/spr_loading2.yy, sprites/spr_master_splash/spr_master_splash.yy, sprites/spr_mk5_complex/spr_mk5_complex.yy, sprites/spr_mk5_head_variants/spr_mk5_head_variants.yy, sprites/spr_p_name_bg/spr_p_name_bg.yy, sprites/spr_penitent_ui/spr_penitent_ui.yy, sprites/spr_popup_dialogue/spr_popup_dialogue.yy, sprites/spr_ship_back_black/spr_ship_back_black.yy, sprites/spr_ship_back_white/spr_ship_back_white.yy Added explicit sequence dimensions, reformatted keyframe/channel JSON, and changed visibleRange properties to null where applicable. No logic changes.

Possibly related PRs

Suggested labels

PR: Feature, PR: Sprites, Size: Huge

Suggested reviewers

  • EttyKitty
  • OH296

++ Praise the Machine God, for the code is now more modular and resplendent in its visual glory. ++


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ 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.
    • Explain this complex logic.
    • 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 explain this code block.
    • @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 explain its main purpose.
    • @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.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

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 generate sequence diagram to generate a sequence diagram of the changes in this 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 or @coderabbitai title 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: 17

🔭 Outside diff range comments (1)
scripts/scr_ComplexSet/scr_ComplexSet.gml (1)

171-173: Malformed comment structure detected.

The Machine Code requires proper comment formatting.

-        /*subs have the format "subcomponents" : [
-            [crusader_neckpiece],
-        ]*/
+        /* Subcomponents have the format:
+         * "subcomponents" : [
+         *     ["crusader_neckpiece"],
+         * ]
+         */
♻️ Duplicate comments (6)
sprites/spr_cata_left_trim_2/spr_cata_left_trim_2.yy (2)

1-30: See prior exhortation regarding .yyp registration.


62-63: Playback speed nitpick identical to spr_cata_right_leg.

sprites/spr_cata_left_trim/spr_cata_left_trim.yy (2)

1-30: Repeat of .yyp manifest requirement.


62-63: Repeat of single-frame playback nitpick.

sprites/spr_cata_cowl_trim/spr_cata_cowl_trim.yy (2)

1-30: Ensure this resource path is likewise inscribed within ChapterMaster.yyp.


62-63: Same remark on unnecessary 30 FPS for a solitary frame.

📜 Review details

Configuration used: CodeRabbit UI
Review profile: ASSERTIVE
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 2d528bb and 0e3e434.

⛔ Files ignored due to path filters (74)
  • datafiles/main/visual_sets/Crusader_bits/topfhelm/1.png is excluded by !**/*.png
  • datafiles/main/visual_sets/Crusader_bits/topfhelm/2.png is excluded by !**/*.png
  • datafiles/main/visual_sets/Crusader_bits/topfhelm/3.png is excluded by !**/*.png
  • datafiles/main/visual_sets/Crusader_bits/torse/1.png is excluded by !**/*.png
  • datafiles/main/visual_sets/Crusader_bits/torse/2.png is excluded by !**/*.png
  • datafiles/main/visual_sets/Crusader_bits/torse/3.png is excluded by !**/*.png
  • datafiles/main/visual_sets/Crusader_bits/torse_with_hood/1.png is excluded by !**/*.png
  • datafiles/main/visual_sets/Crusader_bits/torse_with_hood/2.png is excluded by !**/*.png
  • datafiles/main/visual_sets/Crusader_bits/torse_with_hood/3.png is excluded by !**/*.png
  • datafiles/main/visual_sets/Crusader_bits/torse_with_hood/4.png is excluded by !**/*.png
  • sprites/spr_blank/bfc59ee2-c8b5-4e18-9d19-92ee0b8805a4.png is excluded by !**/*.png
  • sprites/spr_blank/layers/bfc59ee2-c8b5-4e18-9d19-92ee0b8805a4/1b6c16d6-080f-4ab6-96e2-f5318628c178.png is excluded by !**/*.png
  • sprites/spr_cata_belt/0fe6bbd7-15a9-4a87-9edd-9a8370587e1e.png is excluded by !**/*.png
  • sprites/spr_cata_belt/layers/0fe6bbd7-15a9-4a87-9edd-9a8370587e1e/4f697124-68fb-4fd2-9223-aaf62235ab77.png is excluded by !**/*.png
  • sprites/spr_cata_complex/2583c501-d4e3-4285-b210-347ae21d5657.png is excluded by !**/*.png
  • sprites/spr_cata_complex/layers/2583c501-d4e3-4285-b210-347ae21d5657/1c6df36d-e885-4b8f-a400-731ba5f7a89f.png is excluded by !**/*.png
  • sprites/spr_cata_cowl_trim/eacd6626-c655-4103-80b3-501d635dbecc.png is excluded by !**/*.png
  • sprites/spr_cata_cowl_trim/layers/eacd6626-c655-4103-80b3-501d635dbecc/19bbd962-0cda-4b64-9afc-f12938f1660e.png is excluded by !**/*.png
  • sprites/spr_cata_gorget/d14dc785-21d1-4e15-ad83-2b38fa9a79f7.png is excluded by !**/*.png
  • sprites/spr_cata_gorget/layers/d14dc785-21d1-4e15-ad83-2b38fa9a79f7/fe0dd4fc-c973-4418-9c16-c69e04260f36.png is excluded by !**/*.png
  • sprites/spr_cata_head/cc1bb055-3092-4530-9edd-694aca0796a7.png is excluded by !**/*.png
  • sprites/spr_cata_head/df8d27d6-66e9-4750-b0dc-950fe74d3e9f.png is excluded by !**/*.png
  • sprites/spr_cata_head/layers/cc1bb055-3092-4530-9edd-694aca0796a7/1875f065-a467-43e5-b1cb-779c58891acc.png is excluded by !**/*.png
  • sprites/spr_cata_head/layers/df8d27d6-66e9-4750-b0dc-950fe74d3e9f/1875f065-a467-43e5-b1cb-779c58891acc.png is excluded by !**/*.png
  • sprites/spr_cata_heavy_toe_left/8bcf2914-6d8f-4dbe-bdee-bd24eba4637f.png is excluded by !**/*.png
  • sprites/spr_cata_heavy_toe_left/layers/8bcf2914-6d8f-4dbe-bdee-bd24eba4637f/b190c650-f0be-4b86-9abb-b96698d6b9ef.png is excluded by !**/*.png
  • sprites/spr_cata_heavy_toe_right/8bcf2914-6d8f-4dbe-bdee-bd24eba4637f.png is excluded by !**/*.png
  • sprites/spr_cata_heavy_toe_right/layers/8bcf2914-6d8f-4dbe-bdee-bd24eba4637f/b190c650-f0be-4b86-9abb-b96698d6b9ef.png is excluded by !**/*.png
  • sprites/spr_cata_left_arm/376c95d6-eabe-4c9b-b707-0d65fbbf0454.png is excluded by !**/*.png
  • sprites/spr_cata_left_arm/layers/376c95d6-eabe-4c9b-b707-0d65fbbf0454/97c3abbf-8ea9-4634-b6cd-e3687ebbebb5.png is excluded by !**/*.png
  • sprites/spr_cata_left_armtrim/1decac37-9470-4e2d-996d-51927189e93e.png is excluded by !**/*.png
  • sprites/spr_cata_left_armtrim/layers/1decac37-9470-4e2d-996d-51927189e93e/fd443310-bc6c-42e5-a251-16624f2f84bf.png is excluded by !**/*.png
  • sprites/spr_cata_left_knee/7d4772f4-ee86-4983-82a3-4b22204b7345.png is excluded by !**/*.png
  • sprites/spr_cata_left_knee/layers/7d4772f4-ee86-4983-82a3-4b22204b7345/98c531ee-b2a0-4680-8f1d-9a3271f11bf3.png is excluded by !**/*.png
  • sprites/spr_cata_left_leg/30845d03-5630-4ea2-b874-e43d1c591f74.png is excluded by !**/*.png
  • sprites/spr_cata_left_leg/layers/30845d03-5630-4ea2-b874-e43d1c591f74/c2171e14-c3fe-4232-ba2e-e302118f9cc4.png is excluded by !**/*.png
  • sprites/spr_cata_left_trim/1ce219cb-5d0f-4940-a300-ebea3cf690d4.png is excluded by !**/*.png
  • sprites/spr_cata_left_trim/layers/1ce219cb-5d0f-4940-a300-ebea3cf690d4/6fa1b1c6-652f-4092-84b5-fe6e33490587.png is excluded by !**/*.png
  • sprites/spr_cata_left_trim_1/fcefc333-2e12-4b76-a889-59ee344320c8.png is excluded by !**/*.png
  • sprites/spr_cata_left_trim_1/layers/fcefc333-2e12-4b76-a889-59ee344320c8/5ec3c800-6eb0-42fd-bd91-f666b756bab3.png is excluded by !**/*.png
  • sprites/spr_cata_left_trim_2/3089b56b-6212-4848-9073-c4e15cbc81bb.png is excluded by !**/*.png
  • sprites/spr_cata_left_trim_2/layers/3089b56b-6212-4848-9073-c4e15cbc81bb/dfc1dfcf-f929-412a-ae9d-ce4a40087c21.png is excluded by !**/*.png
  • sprites/spr_cata_right_arm/198a5162-01ac-4f12-b555-ac903faa3333.png is excluded by !**/*.png
  • sprites/spr_cata_right_arm/layers/198a5162-01ac-4f12-b555-ac903faa3333/6ea35a9b-5413-463e-8b97-7147b7812bc6.png is excluded by !**/*.png
  • sprites/spr_cata_right_armtrim/82ee5036-1316-4e81-a955-2242e5aa54af.png is excluded by !**/*.png
  • sprites/spr_cata_right_armtrim/layers/82ee5036-1316-4e81-a955-2242e5aa54af/d1b71949-8ac8-4430-9cf8-a761461c4666.png is excluded by !**/*.png
  • sprites/spr_cata_right_knee/494700cd-feb1-4f66-81c1-4dfc8f378e20.png is excluded by !**/*.png
  • sprites/spr_cata_right_knee/layers/494700cd-feb1-4f66-81c1-4dfc8f378e20/7122732c-409f-4f69-9ad0-33318d42dfe5.png is excluded by !**/*.png
  • sprites/spr_cata_right_leg/ecf75db7-6223-4712-8157-c822a10e1617.png is excluded by !**/*.png
  • sprites/spr_cata_right_leg/layers/ecf75db7-6223-4712-8157-c822a10e1617/f2501eb8-3d15-489b-9adf-21790df0d78a.png is excluded by !**/*.png
  • sprites/spr_cata_right_trim/1ce219cb-5d0f-4940-a300-ebea3cf690d4.png is excluded by !**/*.png
  • sprites/spr_cata_right_trim/layers/1ce219cb-5d0f-4940-a300-ebea3cf690d4/6fa1b1c6-652f-4092-84b5-fe6e33490587.png is excluded by !**/*.png
  • sprites/spr_cata_right_trim_1/fcefc333-2e12-4b76-a889-59ee344320c8.png is excluded by !**/*.png
  • sprites/spr_cata_right_trim_1/layers/fcefc333-2e12-4b76-a889-59ee344320c8/5ec3c800-6eb0-42fd-bd91-f666b756bab3.png is excluded by !**/*.png
  • sprites/spr_cata_right_trim_2/3089b56b-6212-4848-9073-c4e15cbc81bb.png is excluded by !**/*.png
  • sprites/spr_cata_right_trim_2/layers/3089b56b-6212-4848-9073-c4e15cbc81bb/dfc1dfcf-f929-412a-ae9d-ce4a40087c21.png is excluded by !**/*.png
  • sprites/spr_cata_shoulder_hanging_leather_left/3fd7e1d5-a9ff-4d84-9e7c-928d601d5549.png is excluded by !**/*.png
  • sprites/spr_cata_shoulder_hanging_leather_left/layers/3fd7e1d5-a9ff-4d84-9e7c-928d601d5549/12a0ccfa-f3e3-4373-b076-5c445ab4fffe.png is excluded by !**/*.png
  • sprites/spr_cata_shoulder_hanging_leather_left_tips/3d17787f-c1c2-47db-992e-a221a37550a1.png is excluded by !**/*.png
  • sprites/spr_cata_shoulder_hanging_leather_left_tips/layers/3d17787f-c1c2-47db-992e-a221a37550a1/89d15f31-c097-44dc-98f3-b3d5ed35463c.png is excluded by !**/*.png
  • sprites/spr_cata_shoulder_hanging_leather_right/0eb5da06-be9b-42af-a45c-5652a70e0363.png is excluded by !**/*.png
  • sprites/spr_cata_shoulder_hanging_leather_right/layers/0eb5da06-be9b-42af-a45c-5652a70e0363/240582c2-092d-40fa-9caa-ea64c5a2fc69.png is excluded by !**/*.png
  • sprites/spr_cata_shoulder_hanging_leather_right_tips/41e731d1-cd8b-487b-9fdf-14ab2b776dfd.png is excluded by !**/*.png
  • sprites/spr_cata_shoulder_hanging_leather_right_tips/layers/41e731d1-cd8b-487b-9fdf-14ab2b776dfd/e023583f-d2bf-40b8-b5a8-2e634d2b7358.png is excluded by !**/*.png
  • sprites/spr_cata_shoulder_hanging_mail_left/96228507-c627-413d-8026-6a20c334f5e5.png is excluded by !**/*.png
  • sprites/spr_cata_shoulder_hanging_mail_left/layers/96228507-c627-413d-8026-6a20c334f5e5/2a3cced8-cb88-494c-a915-5cc072e4ee2c.png is excluded by !**/*.png
  • sprites/spr_cata_shoulder_hanging_mail_right/9d7300ff-3623-424a-9eaa-57079cf97c42.png is excluded by !**/*.png
  • sprites/spr_cata_shoulder_hanging_mail_right/layers/9d7300ff-3623-424a-9eaa-57079cf97c42/c6dc1f20-2c5f-4f34-bb86-be21f432927c.png is excluded by !**/*.png
  • sprites/spr_cata_tabbard_leather/b7da30c6-2b5e-4677-92fb-c840f62bb6b0.png is excluded by !**/*.png
  • sprites/spr_cata_tabbard_leather/layers/b7da30c6-2b5e-4677-92fb-c840f62bb6b0/f7e76e87-6037-4a79-b25a-e22e28f39da2.png is excluded by !**/*.png
  • sprites/spr_cata_tabbard_leather_hangings/16ff2f35-0659-40fa-be7a-7a2942a2c47e.png is excluded by !**/*.png
  • sprites/spr_cata_tabbard_leather_hangings/layers/16ff2f35-0659-40fa-be7a-7a2942a2c47e/a8907230-deee-4373-af6a-ec8ca94f1d81.png is excluded by !**/*.png
  • sprites/spr_cata_tabbard_mail/00c36dff-f59c-419f-acac-bf30655b425b.png is excluded by !**/*.png
  • sprites/spr_cata_tabbard_mail/layers/00c36dff-f59c-419f-acac-bf30655b425b/fdea6507-202f-42a0-9579-5d12967ccbdb.png is excluded by !**/*.png
📒 Files selected for processing (56)
  • ChapterMaster.yyp (5 hunks)
  • datafiles/main/visual_sets/Crusader_bits/data.json (1 hunks)
  • datafiles/main/visual_sets/use_sets.json (1 hunks)
  • scripts/macros/macros.gml (1 hunks)
  • scripts/scr_ComplexSet/scr_ComplexSet.gml (16 hunks)
  • scripts/scr_culture_visuals/scr_culture_visuals.gml (7 hunks)
  • scripts/scr_dialogue/scr_dialogue.gml (53 hunks)
  • sprites/spr_blank/spr_blank.yy (1 hunks)
  • sprites/spr_buy_tiny/spr_buy_tiny.yy (3 hunks)
  • sprites/spr_cata_belt/spr_cata_belt.yy (1 hunks)
  • sprites/spr_cata_complex/spr_cata_complex.yy (1 hunks)
  • sprites/spr_cata_cowl_trim/spr_cata_cowl_trim.yy (1 hunks)
  • sprites/spr_cata_gorget/spr_cata_gorget.yy (1 hunks)
  • sprites/spr_cata_head/spr_cata_head.yy (1 hunks)
  • sprites/spr_cata_heavy_toe_left/spr_cata_heavy_toe_left.yy (1 hunks)
  • sprites/spr_cata_heavy_toe_right/spr_cata_heavy_toe_right.yy (1 hunks)
  • sprites/spr_cata_left_arm/spr_cata_left_arm.yy (1 hunks)
  • sprites/spr_cata_left_armtrim/spr_cata_left_armtrim.yy (1 hunks)
  • sprites/spr_cata_left_knee/spr_cata_left_knee.yy (1 hunks)
  • sprites/spr_cata_left_leg/spr_cata_left_leg.yy (1 hunks)
  • sprites/spr_cata_left_trim/spr_cata_left_trim.yy (1 hunks)
  • sprites/spr_cata_left_trim_1/spr_cata_left_trim_1.yy (1 hunks)
  • sprites/spr_cata_left_trim_2/spr_cata_left_trim_2.yy (1 hunks)
  • sprites/spr_cata_right_arm/spr_cata_right_arm.yy (1 hunks)
  • sprites/spr_cata_right_armtrim/spr_cata_right_armtrim.yy (1 hunks)
  • sprites/spr_cata_right_knee/spr_cata_right_knee.yy (1 hunks)
  • sprites/spr_cata_right_leg/spr_cata_right_leg.yy (1 hunks)
  • sprites/spr_cata_right_trim/spr_cata_right_trim.yy (1 hunks)
  • sprites/spr_cata_right_trim_1/spr_cata_right_trim_1.yy (1 hunks)
  • sprites/spr_cata_right_trim_2/spr_cata_right_trim_2.yy (1 hunks)
  • sprites/spr_cata_shoulder_hanging_leather_left/spr_cata_shoulder_hanging_leather_left.yy (1 hunks)
  • sprites/spr_cata_shoulder_hanging_leather_left_tips/spr_cata_shoulder_hanging_leather_left_tips.yy (1 hunks)
  • sprites/spr_cata_shoulder_hanging_leather_right/spr_cata_shoulder_hanging_leather_right.yy (1 hunks)
  • sprites/spr_cata_shoulder_hanging_leather_right_tips/spr_cata_shoulder_hanging_leather_right_tips.yy (1 hunks)
  • sprites/spr_cata_shoulder_hanging_mail_left/spr_cata_shoulder_hanging_mail_left.yy (1 hunks)
  • sprites/spr_cata_shoulder_hanging_mail_right/spr_cata_shoulder_hanging_mail_right.yy (1 hunks)
  • sprites/spr_cata_tabbard_leather/spr_cata_tabbard_leather.yy (1 hunks)
  • sprites/spr_cata_tabbard_leather_hangings/spr_cata_tabbard_leather_hangings.yy (1 hunks)
  • sprites/spr_cata_tabbard_mail/spr_cata_tabbard_mail.yy (1 hunks)
  • sprites/spr_data_slate_border/spr_data_slate_border.yy (1 hunks)
  • sprites/spr_disposition_small/spr_disposition_small.yy (1 hunks)
  • sprites/spr_icon_change/spr_icon_change.yy (1 hunks)
  • sprites/spr_indomitus_knightly_robe/spr_indomitus_knightly_robe.yy (1 hunks)
  • sprites/spr_indomitus_left_arm/spr_indomitus_left_arm.yy (1 hunks)
  • sprites/spr_indomitus_left_arm_bionic/spr_indomitus_left_arm_bionic.yy (1 hunks)
  • sprites/spr_inspect_small/spr_inspect_small.yy (1 hunks)
  • sprites/spr_loading2/spr_loading2.yy (1 hunks)
  • sprites/spr_master_splash/spr_master_splash.yy (1 hunks)
  • sprites/spr_mk5_complex/spr_mk5_complex.yy (1 hunks)
  • sprites/spr_mk5_head_variants/spr_mk5_head_variants.yy (1 hunks)
  • sprites/spr_p_name_bg/spr_p_name_bg.yy (1 hunks)
  • sprites/spr_penitent_ui/spr_penitent_ui.yy (1 hunks)
  • sprites/spr_popup_dialogue/spr_popup_dialogue.yy (1 hunks)
  • sprites/spr_sell_tiny/spr_sell_tiny.yy (3 hunks)
  • sprites/spr_ship_back_black/spr_ship_back_black.yy (1 hunks)
  • sprites/spr_ship_back_white/spr_ship_back_white.yy (1 hunks)
🧰 Additional context used
📓 Path-based instructions (4)
`**/*.json`: - JSON files with comments are supported by the parser used by this team. Don't warn or request changes to remove them.

**/*.json: - JSON files with comments are supported by the parser used by this team. Don't warn or request changes to remove them.

⚙️ Source: CodeRabbit Configuration File

List of files the instruction was applied to:

  • datafiles/main/visual_sets/use_sets.json
  • datafiles/main/visual_sets/Crusader_bits/data.json
`**/*.*`: - Having humanly understandable and maintainable code is always the to...

**/*.*: - Having humanly understandable and maintainable code is always the top most priority.

⚙️ Source: CodeRabbit Configuration File

List of files the instruction was applied to:

  • datafiles/main/visual_sets/use_sets.json
  • sprites/spr_p_name_bg/spr_p_name_bg.yy
  • sprites/spr_data_slate_border/spr_data_slate_border.yy
  • scripts/macros/macros.gml
  • sprites/spr_sell_tiny/spr_sell_tiny.yy
  • sprites/spr_indomitus_left_arm_bionic/spr_indomitus_left_arm_bionic.yy
  • sprites/spr_ship_back_white/spr_ship_back_white.yy
  • sprites/spr_indomitus_knightly_robe/spr_indomitus_knightly_robe.yy
  • sprites/spr_indomitus_left_arm/spr_indomitus_left_arm.yy
  • sprites/spr_mk5_head_variants/spr_mk5_head_variants.yy
  • sprites/spr_penitent_ui/spr_penitent_ui.yy
  • sprites/spr_mk5_complex/spr_mk5_complex.yy
  • sprites/spr_loading2/spr_loading2.yy
  • sprites/spr_buy_tiny/spr_buy_tiny.yy
  • sprites/spr_cata_right_arm/spr_cata_right_arm.yy
  • sprites/spr_ship_back_black/spr_ship_back_black.yy
  • sprites/spr_icon_change/spr_icon_change.yy
  • sprites/spr_cata_left_arm/spr_cata_left_arm.yy
  • sprites/spr_blank/spr_blank.yy
  • sprites/spr_cata_right_leg/spr_cata_right_leg.yy
  • sprites/spr_cata_heavy_toe_right/spr_cata_heavy_toe_right.yy
  • sprites/spr_cata_tabbard_leather/spr_cata_tabbard_leather.yy
  • sprites/spr_cata_cowl_trim/spr_cata_cowl_trim.yy
  • sprites/spr_cata_left_leg/spr_cata_left_leg.yy
  • sprites/spr_cata_gorget/spr_cata_gorget.yy
  • sprites/spr_inspect_small/spr_inspect_small.yy
  • sprites/spr_cata_right_trim/spr_cata_right_trim.yy
  • sprites/spr_cata_left_armtrim/spr_cata_left_armtrim.yy
  • sprites/spr_master_splash/spr_master_splash.yy
  • sprites/spr_cata_left_trim/spr_cata_left_trim.yy
  • sprites/spr_cata_complex/spr_cata_complex.yy
  • sprites/spr_cata_shoulder_hanging_leather_right_tips/spr_cata_shoulder_hanging_leather_right_tips.yy
  • sprites/spr_cata_left_trim_2/spr_cata_left_trim_2.yy
  • sprites/spr_cata_shoulder_hanging_mail_right/spr_cata_shoulder_hanging_mail_right.yy
  • sprites/spr_cata_right_trim_2/spr_cata_right_trim_2.yy
  • sprites/spr_cata_head/spr_cata_head.yy
  • sprites/spr_popup_dialogue/spr_popup_dialogue.yy
  • sprites/spr_cata_shoulder_hanging_mail_left/spr_cata_shoulder_hanging_mail_left.yy
  • sprites/spr_cata_shoulder_hanging_leather_right/spr_cata_shoulder_hanging_leather_right.yy
  • sprites/spr_cata_right_knee/spr_cata_right_knee.yy
  • sprites/spr_cata_shoulder_hanging_leather_left/spr_cata_shoulder_hanging_leather_left.yy
  • sprites/spr_cata_shoulder_hanging_leather_left_tips/spr_cata_shoulder_hanging_leather_left_tips.yy
  • sprites/spr_cata_tabbard_leather_hangings/spr_cata_tabbard_leather_hangings.yy
  • sprites/spr_cata_tabbard_mail/spr_cata_tabbard_mail.yy
  • sprites/spr_cata_left_knee/spr_cata_left_knee.yy
  • sprites/spr_cata_belt/spr_cata_belt.yy
  • sprites/spr_cata_left_trim_1/spr_cata_left_trim_1.yy
  • sprites/spr_cata_right_armtrim/spr_cata_right_armtrim.yy
  • sprites/spr_disposition_small/spr_disposition_small.yy
  • datafiles/main/visual_sets/Crusader_bits/data.json
  • sprites/spr_cata_right_trim_1/spr_cata_right_trim_1.yy
  • sprites/spr_cata_heavy_toe_left/spr_cata_heavy_toe_left.yy
  • scripts/scr_ComplexSet/scr_ComplexSet.gml
  • scripts/scr_culture_visuals/scr_culture_visuals.gml
  • scripts/scr_dialogue/scr_dialogue.gml
  • ChapterMaster.yyp
`**/*.yy`: - When any script or sprite .yy files are deleted, their paths should...

**/*.yy: - When any script or sprite .yy files are deleted, their paths should also be deleted from the .yyp file, otherwise the game will crash.

  • When any script or sprite .yy files are created, their paths should be added to the .yyp file, otherwise they'll fail.

⚙️ Source: CodeRabbit Configuration File

List of files the instruction was applied to:

  • sprites/spr_p_name_bg/spr_p_name_bg.yy
  • sprites/spr_data_slate_border/spr_data_slate_border.yy
  • sprites/spr_sell_tiny/spr_sell_tiny.yy
  • sprites/spr_indomitus_left_arm_bionic/spr_indomitus_left_arm_bionic.yy
  • sprites/spr_ship_back_white/spr_ship_back_white.yy
  • sprites/spr_indomitus_knightly_robe/spr_indomitus_knightly_robe.yy
  • sprites/spr_indomitus_left_arm/spr_indomitus_left_arm.yy
  • sprites/spr_mk5_head_variants/spr_mk5_head_variants.yy
  • sprites/spr_penitent_ui/spr_penitent_ui.yy
  • sprites/spr_mk5_complex/spr_mk5_complex.yy
  • sprites/spr_loading2/spr_loading2.yy
  • sprites/spr_buy_tiny/spr_buy_tiny.yy
  • sprites/spr_cata_right_arm/spr_cata_right_arm.yy
  • sprites/spr_ship_back_black/spr_ship_back_black.yy
  • sprites/spr_icon_change/spr_icon_change.yy
  • sprites/spr_cata_left_arm/spr_cata_left_arm.yy
  • sprites/spr_blank/spr_blank.yy
  • sprites/spr_cata_right_leg/spr_cata_right_leg.yy
  • sprites/spr_cata_heavy_toe_right/spr_cata_heavy_toe_right.yy
  • sprites/spr_cata_tabbard_leather/spr_cata_tabbard_leather.yy
  • sprites/spr_cata_cowl_trim/spr_cata_cowl_trim.yy
  • sprites/spr_cata_left_leg/spr_cata_left_leg.yy
  • sprites/spr_cata_gorget/spr_cata_gorget.yy
  • sprites/spr_inspect_small/spr_inspect_small.yy
  • sprites/spr_cata_right_trim/spr_cata_right_trim.yy
  • sprites/spr_cata_left_armtrim/spr_cata_left_armtrim.yy
  • sprites/spr_master_splash/spr_master_splash.yy
  • sprites/spr_cata_left_trim/spr_cata_left_trim.yy
  • sprites/spr_cata_complex/spr_cata_complex.yy
  • sprites/spr_cata_shoulder_hanging_leather_right_tips/spr_cata_shoulder_hanging_leather_right_tips.yy
  • sprites/spr_cata_left_trim_2/spr_cata_left_trim_2.yy
  • sprites/spr_cata_shoulder_hanging_mail_right/spr_cata_shoulder_hanging_mail_right.yy
  • sprites/spr_cata_right_trim_2/spr_cata_right_trim_2.yy
  • sprites/spr_cata_head/spr_cata_head.yy
  • sprites/spr_popup_dialogue/spr_popup_dialogue.yy
  • sprites/spr_cata_shoulder_hanging_mail_left/spr_cata_shoulder_hanging_mail_left.yy
  • sprites/spr_cata_shoulder_hanging_leather_right/spr_cata_shoulder_hanging_leather_right.yy
  • sprites/spr_cata_right_knee/spr_cata_right_knee.yy
  • sprites/spr_cata_shoulder_hanging_leather_left/spr_cata_shoulder_hanging_leather_left.yy
  • sprites/spr_cata_shoulder_hanging_leather_left_tips/spr_cata_shoulder_hanging_leather_left_tips.yy
  • sprites/spr_cata_tabbard_leather_hangings/spr_cata_tabbard_leather_hangings.yy
  • sprites/spr_cata_tabbard_mail/spr_cata_tabbard_mail.yy
  • sprites/spr_cata_left_knee/spr_cata_left_knee.yy
  • sprites/spr_cata_belt/spr_cata_belt.yy
  • sprites/spr_cata_left_trim_1/spr_cata_left_trim_1.yy
  • sprites/spr_cata_right_armtrim/spr_cata_right_armtrim.yy
  • sprites/spr_disposition_small/spr_disposition_small.yy
  • sprites/spr_cata_right_trim_1/spr_cata_right_trim_1.yy
  • sprites/spr_cata_heavy_toe_left/spr_cata_heavy_toe_left.yy
`**/*.gml`: - Macro constants require a space between the constant name and valu...

**/*.gml: - Macro constants require a space between the constant name and value. Without it, the compiler will throw an error. I.e. #macro ARR_body_parts["arm"] will crash the game, because there is no space between the array and the name of the macro.

⚙️ Source: CodeRabbit Configuration File

List of files the instruction was applied to:

  • scripts/macros/macros.gml
  • scripts/scr_ComplexSet/scr_ComplexSet.gml
  • scripts/scr_culture_visuals/scr_culture_visuals.gml
  • scripts/scr_dialogue/scr_dialogue.gml
🧠 Learnings (56)
📓 Common learnings
Learnt from: EttyKitty
PR: Adeptus-Dominus/ChapterMaster#0
File: :0-0
Timestamp: 2025-04-05T20:54:45.813Z
Learning: EttyKitty requested a rework of the vehicle and marine recovery system in ChapterMaster. The current system allows guaranteed recovery with enough recovery points, while the proposed system would use random chance modified by techmarine skill and item bonuses.
Learnt from: EttyKitty
PR: Adeptus-Dominus/ChapterMaster#0
File: :0-0
Timestamp: 2025-03-20T22:22:57.319Z
Learning: In the ChapterMaster game PR #424, the psychic power system was changed to be data-driven, with perils now able to occur on both successful and failed casts but with reduced frequency overall.
Learnt from: EttyKitty
PR: Adeptus-Dominus/ChapterMaster#0
File: :0-0
Timestamp: 2025-03-20T22:22:57.319Z
Learning: In the ChapterMaster game PR #424, the "Psyker Abundance" advantage was renamed to "Warp Touched", "Daemon Binders" advantage was removed, and "Warp Touched" disadvantage was renamed to "Warp Tainted".
Learnt from: MCPO-Spartan-117
PR: Adeptus-Dominus/ChapterMaster#526
File: objects/obj_popup/Draw_0.gml:234-239
Timestamp: 2025-03-01T11:06:25.427Z
Learning: The comment "Need to modify ^^^^ based on if it is chaos or daemonic" in the artifact gifting code is intentionally kept as a reminder that this implementation is not yet finished, despite the significant refactoring already done.
Learnt from: EttyKitty
PR: Adeptus-Dominus/ChapterMaster#0
File: :0-0
Timestamp: 2025-03-20T22:22:57.319Z
Learning: In the ChapterMaster game PR #424, the combat log was expanded to display up to 24 messages instead of 8, providing more detailed battle information.
Learnt from: EttyKitty
PR: Adeptus-Dominus/ChapterMaster#0
File: :0-0
Timestamp: 2025-04-05T20:58:21.881Z
Learning: In the ChapterMaster game, there's a need to refactor hardcoded item effects and move them to a "specials" property of items, following the pattern established with the `combi_tool` special. This improves code maintainability and makes effects more explicit in item definitions.
Learnt from: EttyKitty
PR: Adeptus-Dominus/ChapterMaster#0
File: :0-0
Timestamp: 2025-04-05T20:58:21.881Z
Learning: In the ChapterMaster game, there's a need to refactor hardcoded item effects and move them to a "specials" property of items, following the pattern established with the `combi_tool` special. This improves code maintainability and makes effects more explicit in item definitions.
datafiles/main/visual_sets/use_sets.json (2)
Learnt from: EttyKitty
PR: Adeptus-Dominus/ChapterMaster#878
File: scripts/scr_culture_visuals/scr_culture_visuals.gml:1256-1352
Timestamp: 2025-06-16T17:12:13.045Z
Learning: In scripts/scr_culture_visuals/scr_culture_visuals.gml, the weapon visual data declarations contain known DRY violations that are acknowledged by the development team but deferred to future refactoring efforts rather than addressed in individual feature PRs.
Learnt from: EttyKitty
PR: Adeptus-Dominus/ChapterMaster#878
File: scripts/scr_culture_visuals/scr_culture_visuals.gml:1256-1352
Timestamp: 2025-06-16T17:12:13.045Z
Learning: In scripts/scr_culture_visuals/scr_culture_visuals.gml, the weapon visual data declarations contain known DRY violations that are acknowledged by the development team but deferred to future refactoring efforts rather than addressed in individual feature PRs.
sprites/spr_p_name_bg/spr_p_name_bg.yy (2)
Learnt from: OH296
PR: Adeptus-Dominus/ChapterMaster#474
File: sprites/spr_marksmans_honor/spr_marksmans_honor.yy:47-52
Timestamp: 2025-02-27T02:17:54.527Z
Learning: The sprite "spr_marksmans_honor" is not used for animation despite having multiple frames - these frames represent different static states used in different contexts.
Learnt from: EttyKitty
PR: Adeptus-Dominus/ChapterMaster#474
File: sprites/spr_bionic_right_arm/spr_bionic_right_arm.yy:52-53
Timestamp: 2025-02-24T17:43:59.846Z
Learning: In the ChapterMaster codebase, sprite files with multiple frames are often used as separate sprites rather than animations, making playback speed settings irrelevant.
sprites/spr_data_slate_border/spr_data_slate_border.yy (1)
Learnt from: EttyKitty
PR: Adeptus-Dominus/ChapterMaster#474
File: sprites/spr_bionic_right_arm/spr_bionic_right_arm.yy:52-53
Timestamp: 2025-02-24T17:43:59.846Z
Learning: In the ChapterMaster codebase, sprite files with multiple frames are often used as separate sprites rather than animations, making playback speed settings irrelevant.
sprites/spr_sell_tiny/spr_sell_tiny.yy (1)
Learnt from: OH296
PR: Adeptus-Dominus/ChapterMaster#474
File: sprites/spr_marksmans_honor/spr_marksmans_honor.yy:47-52
Timestamp: 2025-02-27T02:17:54.527Z
Learning: The sprite "spr_marksmans_honor" is not used for animation despite having multiple frames - these frames represent different static states used in different contexts.
sprites/spr_indomitus_left_arm_bionic/spr_indomitus_left_arm_bionic.yy (2)
Learnt from: OH296
PR: Adeptus-Dominus/ChapterMaster#474
File: sprites/spr_marksmans_honor/spr_marksmans_honor.yy:47-52
Timestamp: 2025-02-27T02:17:54.527Z
Learning: The sprite "spr_marksmans_honor" is not used for animation despite having multiple frames - these frames represent different static states used in different contexts.
Learnt from: EttyKitty
PR: Adeptus-Dominus/ChapterMaster#474
File: sprites/spr_bionic_right_arm/spr_bionic_right_arm.yy:52-53
Timestamp: 2025-02-24T17:43:59.846Z
Learning: In the ChapterMaster codebase, sprite files with multiple frames are often used as separate sprites rather than animations, making playback speed settings irrelevant.
sprites/spr_ship_back_white/spr_ship_back_white.yy (2)
Learnt from: OH296
PR: Adeptus-Dominus/ChapterMaster#474
File: sprites/spr_marksmans_honor/spr_marksmans_honor.yy:47-52
Timestamp: 2025-02-27T02:17:54.527Z
Learning: The sprite "spr_marksmans_honor" is not used for animation despite having multiple frames - these frames represent different static states used in different contexts.
Learnt from: EttyKitty
PR: Adeptus-Dominus/ChapterMaster#474
File: sprites/spr_bionic_right_arm/spr_bionic_right_arm.yy:52-53
Timestamp: 2025-02-24T17:43:59.846Z
Learning: In the ChapterMaster codebase, sprite files with multiple frames are often used as separate sprites rather than animations, making playback speed settings irrelevant.
sprites/spr_indomitus_knightly_robe/spr_indomitus_knightly_robe.yy (2)
Learnt from: OH296
PR: Adeptus-Dominus/ChapterMaster#474
File: sprites/spr_marksmans_honor/spr_marksmans_honor.yy:47-52
Timestamp: 2025-02-27T02:17:54.527Z
Learning: The sprite "spr_marksmans_honor" is not used for animation despite having multiple frames - these frames represent different static states used in different contexts.
Learnt from: EttyKitty
PR: Adeptus-Dominus/ChapterMaster#474
File: sprites/spr_bionic_right_arm/spr_bionic_right_arm.yy:52-53
Timestamp: 2025-02-24T17:43:59.846Z
Learning: In the ChapterMaster codebase, sprite files with multiple frames are often used as separate sprites rather than animations, making playback speed settings irrelevant.
sprites/spr_indomitus_left_arm/spr_indomitus_left_arm.yy (2)
Learnt from: OH296
PR: Adeptus-Dominus/ChapterMaster#474
File: sprites/spr_marksmans_honor/spr_marksmans_honor.yy:47-52
Timestamp: 2025-02-27T02:17:54.527Z
Learning: The sprite "spr_marksmans_honor" is not used for animation despite having multiple frames - these frames represent different static states used in different contexts.
Learnt from: EttyKitty
PR: Adeptus-Dominus/ChapterMaster#474
File: sprites/spr_bionic_right_arm/spr_bionic_right_arm.yy:52-53
Timestamp: 2025-02-24T17:43:59.846Z
Learning: In the ChapterMaster codebase, sprite files with multiple frames are often used as separate sprites rather than animations, making playback speed settings irrelevant.
sprites/spr_mk5_head_variants/spr_mk5_head_variants.yy (2)
Learnt from: OH296
PR: Adeptus-Dominus/ChapterMaster#474
File: sprites/spr_marksmans_honor/spr_marksmans_honor.yy:47-52
Timestamp: 2025-02-27T02:17:54.527Z
Learning: The sprite "spr_marksmans_honor" is not used for animation despite having multiple frames - these frames represent different static states used in different contexts.
Learnt from: EttyKitty
PR: Adeptus-Dominus/ChapterMaster#474
File: sprites/spr_bionic_right_arm/spr_bionic_right_arm.yy:52-53
Timestamp: 2025-02-24T17:43:59.846Z
Learning: In the ChapterMaster codebase, sprite files with multiple frames are often used as separate sprites rather than animations, making playback speed settings irrelevant.
sprites/spr_penitent_ui/spr_penitent_ui.yy (2)
Learnt from: OH296
PR: Adeptus-Dominus/ChapterMaster#474
File: sprites/spr_marksmans_honor/spr_marksmans_honor.yy:47-52
Timestamp: 2025-02-27T02:17:54.527Z
Learning: The sprite "spr_marksmans_honor" is not used for animation despite having multiple frames - these frames represent different static states used in different contexts.
Learnt from: EttyKitty
PR: Adeptus-Dominus/ChapterMaster#474
File: sprites/spr_bionic_right_arm/spr_bionic_right_arm.yy:52-53
Timestamp: 2025-02-24T17:43:59.846Z
Learning: In the ChapterMaster codebase, sprite files with multiple frames are often used as separate sprites rather than animations, making playback speed settings irrelevant.
sprites/spr_mk5_complex/spr_mk5_complex.yy (2)
Learnt from: OH296
PR: Adeptus-Dominus/ChapterMaster#474
File: sprites/spr_marksmans_honor/spr_marksmans_honor.yy:47-52
Timestamp: 2025-02-27T02:17:54.527Z
Learning: The sprite "spr_marksmans_honor" is not used for animation despite having multiple frames - these frames represent different static states used in different contexts.
Learnt from: EttyKitty
PR: Adeptus-Dominus/ChapterMaster#474
File: sprites/spr_bionic_right_arm/spr_bionic_right_arm.yy:52-53
Timestamp: 2025-02-24T17:43:59.846Z
Learning: In the ChapterMaster codebase, sprite files with multiple frames are often used as separate sprites rather than animations, making playback speed settings irrelevant.
sprites/spr_loading2/spr_loading2.yy (2)
Learnt from: OH296
PR: Adeptus-Dominus/ChapterMaster#474
File: sprites/spr_marksmans_honor/spr_marksmans_honor.yy:47-52
Timestamp: 2025-02-27T02:17:54.527Z
Learning: The sprite "spr_marksmans_honor" is not used for animation despite having multiple frames - these frames represent different static states used in different contexts.
Learnt from: EttyKitty
PR: Adeptus-Dominus/ChapterMaster#474
File: sprites/spr_bionic_right_arm/spr_bionic_right_arm.yy:52-53
Timestamp: 2025-02-24T17:43:59.846Z
Learning: In the ChapterMaster codebase, sprite files with multiple frames are often used as separate sprites rather than animations, making playback speed settings irrelevant.
sprites/spr_buy_tiny/spr_buy_tiny.yy (1)
Learnt from: OH296
PR: Adeptus-Dominus/ChapterMaster#474
File: sprites/spr_marksmans_honor/spr_marksmans_honor.yy:47-52
Timestamp: 2025-02-27T02:17:54.527Z
Learning: The sprite "spr_marksmans_honor" is not used for animation despite having multiple frames - these frames represent different static states used in different contexts.
sprites/spr_cata_right_arm/spr_cata_right_arm.yy (1)
Learnt from: OH296
PR: Adeptus-Dominus/ChapterMaster#474
File: sprites/spr_marksmans_honor/spr_marksmans_honor.yy:47-52
Timestamp: 2025-02-27T02:17:54.527Z
Learning: The sprite "spr_marksmans_honor" is not used for animation despite having multiple frames - these frames represent different static states used in different contexts.
sprites/spr_ship_back_black/spr_ship_back_black.yy (2)
Learnt from: OH296
PR: Adeptus-Dominus/ChapterMaster#474
File: sprites/spr_marksmans_honor/spr_marksmans_honor.yy:47-52
Timestamp: 2025-02-27T02:17:54.527Z
Learning: The sprite "spr_marksmans_honor" is not used for animation despite having multiple frames - these frames represent different static states used in different contexts.
Learnt from: EttyKitty
PR: Adeptus-Dominus/ChapterMaster#474
File: sprites/spr_bionic_right_arm/spr_bionic_right_arm.yy:52-53
Timestamp: 2025-02-24T17:43:59.846Z
Learning: In the ChapterMaster codebase, sprite files with multiple frames are often used as separate sprites rather than animations, making playback speed settings irrelevant.
sprites/spr_icon_change/spr_icon_change.yy (2)
Learnt from: OH296
PR: Adeptus-Dominus/ChapterMaster#474
File: sprites/spr_marksmans_honor/spr_marksmans_honor.yy:47-52
Timestamp: 2025-02-27T02:17:54.527Z
Learning: The sprite "spr_marksmans_honor" is not used for animation despite having multiple frames - these frames represent different static states used in different contexts.
Learnt from: EttyKitty
PR: Adeptus-Dominus/ChapterMaster#474
File: sprites/spr_bionic_right_arm/spr_bionic_right_arm.yy:52-53
Timestamp: 2025-02-24T17:43:59.846Z
Learning: In the ChapterMaster codebase, sprite files with multiple frames are often used as separate sprites rather than animations, making playback speed settings irrelevant.
sprites/spr_cata_left_arm/spr_cata_left_arm.yy (1)
Learnt from: OH296
PR: Adeptus-Dominus/ChapterMaster#474
File: sprites/spr_marksmans_honor/spr_marksmans_honor.yy:47-52
Timestamp: 2025-02-27T02:17:54.527Z
Learning: The sprite "spr_marksmans_honor" is not used for animation despite having multiple frames - these frames represent different static states used in different contexts.
sprites/spr_blank/spr_blank.yy (1)
Learnt from: OH296
PR: Adeptus-Dominus/ChapterMaster#474
File: sprites/spr_marksmans_honor/spr_marksmans_honor.yy:47-52
Timestamp: 2025-02-27T02:17:54.527Z
Learning: The sprite "spr_marksmans_honor" is not used for animation despite having multiple frames - these frames represent different static states used in different contexts.
sprites/spr_cata_right_leg/spr_cata_right_leg.yy (1)
Learnt from: OH296
PR: Adeptus-Dominus/ChapterMaster#474
File: sprites/spr_marksmans_honor/spr_marksmans_honor.yy:47-52
Timestamp: 2025-02-27T02:17:54.527Z
Learning: The sprite "spr_marksmans_honor" is not used for animation despite having multiple frames - these frames represent different static states used in different contexts.
sprites/spr_cata_heavy_toe_right/spr_cata_heavy_toe_right.yy (1)
Learnt from: OH296
PR: Adeptus-Dominus/ChapterMaster#474
File: sprites/spr_marksmans_honor/spr_marksmans_honor.yy:47-52
Timestamp: 2025-02-27T02:17:54.527Z
Learning: The sprite "spr_marksmans_honor" is not used for animation despite having multiple frames - these frames represent different static states used in different contexts.
sprites/spr_cata_tabbard_leather/spr_cata_tabbard_leather.yy (1)
Learnt from: OH296
PR: Adeptus-Dominus/ChapterMaster#474
File: sprites/spr_marksmans_honor/spr_marksmans_honor.yy:47-52
Timestamp: 2025-02-27T02:17:54.527Z
Learning: The sprite "spr_marksmans_honor" is not used for animation despite having multiple frames - these frames represent different static states used in different contexts.
sprites/spr_cata_cowl_trim/spr_cata_cowl_trim.yy (1)
Learnt from: OH296
PR: Adeptus-Dominus/ChapterMaster#474
File: sprites/spr_marksmans_honor/spr_marksmans_honor.yy:47-52
Timestamp: 2025-02-27T02:17:54.527Z
Learning: The sprite "spr_marksmans_honor" is not used for animation despite having multiple frames - these frames represent different static states used in different contexts.
sprites/spr_cata_left_leg/spr_cata_left_leg.yy (1)
Learnt from: OH296
PR: Adeptus-Dominus/ChapterMaster#474
File: sprites/spr_marksmans_honor/spr_marksmans_honor.yy:47-52
Timestamp: 2025-02-27T02:17:54.527Z
Learning: The sprite "spr_marksmans_honor" is not used for animation despite having multiple frames - these frames represent different static states used in different contexts.
sprites/spr_cata_gorget/spr_cata_gorget.yy (1)
Learnt from: OH296
PR: Adeptus-Dominus/ChapterMaster#474
File: sprites/spr_marksmans_honor/spr_marksmans_honor.yy:47-52
Timestamp: 2025-02-27T02:17:54.527Z
Learning: The sprite "spr_marksmans_honor" is not used for animation despite having multiple frames - these frames represent different static states used in different contexts.
sprites/spr_inspect_small/spr_inspect_small.yy (1)
Learnt from: OH296
PR: Adeptus-Dominus/ChapterMaster#474
File: sprites/spr_marksmans_honor/spr_marksmans_honor.yy:47-52
Timestamp: 2025-02-27T02:17:54.527Z
Learning: The sprite "spr_marksmans_honor" is not used for animation despite having multiple frames - these frames represent different static states used in different contexts.
sprites/spr_cata_right_trim/spr_cata_right_trim.yy (1)
Learnt from: OH296
PR: Adeptus-Dominus/ChapterMaster#474
File: sprites/spr_marksmans_honor/spr_marksmans_honor.yy:47-52
Timestamp: 2025-02-27T02:17:54.527Z
Learning: The sprite "spr_marksmans_honor" is not used for animation despite having multiple frames - these frames represent different static states used in different contexts.
sprites/spr_cata_left_armtrim/spr_cata_left_armtrim.yy (1)
Learnt from: OH296
PR: Adeptus-Dominus/ChapterMaster#474
File: sprites/spr_marksmans_honor/spr_marksmans_honor.yy:47-52
Timestamp: 2025-02-27T02:17:54.527Z
Learning: The sprite "spr_marksmans_honor" is not used for animation despite having multiple frames - these frames represent different static states used in different contexts.
sprites/spr_master_splash/spr_master_splash.yy (2)
Learnt from: EttyKitty
PR: Adeptus-Dominus/ChapterMaster#474
File: sprites/spr_bionic_right_arm/spr_bionic_right_arm.yy:52-53
Timestamp: 2025-02-24T17:43:59.846Z
Learning: In the ChapterMaster codebase, sprite files with multiple frames are often used as separate sprites rather than animations, making playback speed settings irrelevant.
Learnt from: OH296
PR: Adeptus-Dominus/ChapterMaster#474
File: sprites/spr_marksmans_honor/spr_marksmans_honor.yy:47-52
Timestamp: 2025-02-27T02:17:54.527Z
Learning: The sprite "spr_marksmans_honor" is not used for animation despite having multiple frames - these frames represent different static states used in different contexts.
sprites/spr_cata_left_trim/spr_cata_left_trim.yy (1)
Learnt from: OH296
PR: Adeptus-Dominus/ChapterMaster#474
File: sprites/spr_marksmans_honor/spr_marksmans_honor.yy:47-52
Timestamp: 2025-02-27T02:17:54.527Z
Learning: The sprite "spr_marksmans_honor" is not used for animation despite having multiple frames - these frames represent different static states used in different contexts.
sprites/spr_cata_complex/spr_cata_complex.yy (1)
Learnt from: OH296
PR: Adeptus-Dominus/ChapterMaster#474
File: sprites/spr_marksmans_honor/spr_marksmans_honor.yy:47-52
Timestamp: 2025-02-27T02:17:54.527Z
Learning: The sprite "spr_marksmans_honor" is not used for animation despite having multiple frames - these frames represent different static states used in different contexts.
sprites/spr_cata_shoulder_hanging_leather_right_tips/spr_cata_shoulder_hanging_leather_right_tips.yy (1)
Learnt from: OH296
PR: Adeptus-Dominus/ChapterMaster#474
File: sprites/spr_marksmans_honor/spr_marksmans_honor.yy:47-52
Timestamp: 2025-02-27T02:17:54.527Z
Learning: The sprite "spr_marksmans_honor" is not used for animation despite having multiple frames - these frames represent different static states used in different contexts.
sprites/spr_cata_left_trim_2/spr_cata_left_trim_2.yy (2)
Learnt from: OH296
PR: Adeptus-Dominus/ChapterMaster#474
File: sprites/spr_marksmans_honor/spr_marksmans_honor.yy:47-52
Timestamp: 2025-02-27T02:17:54.527Z
Learning: The sprite "spr_marksmans_honor" is not used for animation despite having multiple frames - these frames represent different static states used in different contexts.
Learnt from: EttyKitty
PR: Adeptus-Dominus/ChapterMaster#474
File: sprites/spr_bionic_right_arm/spr_bionic_right_arm.yy:52-53
Timestamp: 2025-02-24T17:43:59.846Z
Learning: In the ChapterMaster codebase, sprite files with multiple frames are often used as separate sprites rather than animations, making playback speed settings irrelevant.
sprites/spr_cata_shoulder_hanging_mail_right/spr_cata_shoulder_hanging_mail_right.yy (1)
Learnt from: OH296
PR: Adeptus-Dominus/ChapterMaster#474
File: sprites/spr_marksmans_honor/spr_marksmans_honor.yy:47-52
Timestamp: 2025-02-27T02:17:54.527Z
Learning: The sprite "spr_marksmans_honor" is not used for animation despite having multiple frames - these frames represent different static states used in different contexts.
sprites/spr_cata_right_trim_2/spr_cata_right_trim_2.yy (2)
Learnt from: OH296
PR: Adeptus-Dominus/ChapterMaster#474
File: sprites/spr_marksmans_honor/spr_marksmans_honor.yy:47-52
Timestamp: 2025-02-27T02:17:54.527Z
Learning: The sprite "spr_marksmans_honor" is not used for animation despite having multiple frames - these frames represent different static states used in different contexts.
Learnt from: EttyKitty
PR: Adeptus-Dominus/ChapterMaster#474
File: sprites/spr_bionic_right_arm/spr_bionic_right_arm.yy:52-53
Timestamp: 2025-02-24T17:43:59.846Z
Learning: In the ChapterMaster codebase, sprite files with multiple frames are often used as separate sprites rather than animations, making playback speed settings irrelevant.
sprites/spr_cata_head/spr_cata_head.yy (1)
Learnt from: OH296
PR: Adeptus-Dominus/ChapterMaster#474
File: sprites/spr_marksmans_honor/spr_marksmans_honor.yy:47-52
Timestamp: 2025-02-27T02:17:54.527Z
Learning: The sprite "spr_marksmans_honor" is not used for animation despite having multiple frames - these frames represent different static states used in different contexts.
sprites/spr_popup_dialogue/spr_popup_dialogue.yy (1)
Learnt from: OH296
PR: Adeptus-Dominus/ChapterMaster#474
File: sprites/spr_marksmans_honor/spr_marksmans_honor.yy:47-52
Timestamp: 2025-02-27T02:17:54.527Z
Learning: The sprite "spr_marksmans_honor" is not used for animation despite having multiple frames - these frames represent different static states used in different contexts.
sprites/spr_cata_shoulder_hanging_mail_left/spr_cata_shoulder_hanging_mail_left.yy (1)
Learnt from: OH296
PR: Adeptus-Dominus/ChapterMaster#474
File: sprites/spr_marksmans_honor/spr_marksmans_honor.yy:47-52
Timestamp: 2025-02-27T02:17:54.527Z
Learning: The sprite "spr_marksmans_honor" is not used for animation despite having multiple frames - these frames represent different static states used in different contexts.
sprites/spr_cata_shoulder_hanging_leather_right/spr_cata_shoulder_hanging_leather_right.yy (1)
Learnt from: OH296
PR: Adeptus-Dominus/ChapterMaster#474
File: sprites/spr_marksmans_honor/spr_marksmans_honor.yy:47-52
Timestamp: 2025-02-27T02:17:54.527Z
Learning: The sprite "spr_marksmans_honor" is not used for animation despite having multiple frames - these frames represent different static states used in different contexts.
sprites/spr_cata_right_knee/spr_cata_right_knee.yy (1)
Learnt from: OH296
PR: Adeptus-Dominus/ChapterMaster#474
File: sprites/spr_marksmans_honor/spr_marksmans_honor.yy:47-52
Timestamp: 2025-02-27T02:17:54.527Z
Learning: The sprite "spr_marksmans_honor" is not used for animation despite having multiple frames - these frames represent different static states used in different contexts.
sprites/spr_cata_shoulder_hanging_leather_left/spr_cata_shoulder_hanging_leather_left.yy (1)
Learnt from: OH296
PR: Adeptus-Dominus/ChapterMaster#474
File: sprites/spr_marksmans_honor/spr_marksmans_honor.yy:47-52
Timestamp: 2025-02-27T02:17:54.527Z
Learning: The sprite "spr_marksmans_honor" is not used for animation despite having multiple frames - these frames represent different static states used in different contexts.
sprites/spr_cata_shoulder_hanging_leather_left_tips/spr_cata_shoulder_hanging_leather_left_tips.yy (1)
Learnt from: OH296
PR: Adeptus-Dominus/ChapterMaster#474
File: sprites/spr_marksmans_honor/spr_marksmans_honor.yy:47-52
Timestamp: 2025-02-27T02:17:54.527Z
Learning: The sprite "spr_marksmans_honor" is not used for animation despite having multiple frames - these frames represent different static states used in different contexts.
sprites/spr_cata_tabbard_leather_hangings/spr_cata_tabbard_leather_hangings.yy (1)
Learnt from: OH296
PR: Adeptus-Dominus/ChapterMaster#474
File: sprites/spr_marksmans_honor/spr_marksmans_honor.yy:47-52
Timestamp: 2025-02-27T02:17:54.527Z
Learning: The sprite "spr_marksmans_honor" is not used for animation despite having multiple frames - these frames represent different static states used in different contexts.
sprites/spr_cata_tabbard_mail/spr_cata_tabbard_mail.yy (1)
Learnt from: OH296
PR: Adeptus-Dominus/ChapterMaster#474
File: sprites/spr_marksmans_honor/spr_marksmans_honor.yy:47-52
Timestamp: 2025-02-27T02:17:54.527Z
Learning: The sprite "spr_marksmans_honor" is not used for animation despite having multiple frames - these frames represent different static states used in different contexts.
sprites/spr_cata_left_knee/spr_cata_left_knee.yy (1)
Learnt from: OH296
PR: Adeptus-Dominus/ChapterMaster#474
File: sprites/spr_marksmans_honor/spr_marksmans_honor.yy:47-52
Timestamp: 2025-02-27T02:17:54.527Z
Learning: The sprite "spr_marksmans_honor" is not used for animation despite having multiple frames - these frames represent different static states used in different contexts.
sprites/spr_cata_belt/spr_cata_belt.yy (1)
Learnt from: OH296
PR: Adeptus-Dominus/ChapterMaster#474
File: sprites/spr_marksmans_honor/spr_marksmans_honor.yy:47-52
Timestamp: 2025-02-27T02:17:54.527Z
Learning: The sprite "spr_marksmans_honor" is not used for animation despite having multiple frames - these frames represent different static states used in different contexts.
sprites/spr_cata_left_trim_1/spr_cata_left_trim_1.yy (2)
Learnt from: OH296
PR: Adeptus-Dominus/ChapterMaster#474
File: sprites/spr_marksmans_honor/spr_marksmans_honor.yy:47-52
Timestamp: 2025-02-27T02:17:54.527Z
Learning: The sprite "spr_marksmans_honor" is not used for animation despite having multiple frames - these frames represent different static states used in different contexts.
Learnt from: EttyKitty
PR: Adeptus-Dominus/ChapterMaster#474
File: sprites/spr_bionic_right_arm/spr_bionic_right_arm.yy:52-53
Timestamp: 2025-02-24T17:43:59.846Z
Learning: In the ChapterMaster codebase, sprite files with multiple frames are often used as separate sprites rather than animations, making playback speed settings irrelevant.
sprites/spr_cata_right_armtrim/spr_cata_right_armtrim.yy (1)
Learnt from: OH296
PR: Adeptus-Dominus/ChapterMaster#474
File: sprites/spr_marksmans_honor/spr_marksmans_honor.yy:47-52
Timestamp: 2025-02-27T02:17:54.527Z
Learning: The sprite "spr_marksmans_honor" is not used for animation despite having multiple frames - these frames represent different static states used in different contexts.
sprites/spr_disposition_small/spr_disposition_small.yy (2)
Learnt from: OH296
PR: Adeptus-Dominus/ChapterMaster#474
File: sprites/spr_marksmans_honor/spr_marksmans_honor.yy:47-52
Timestamp: 2025-02-27T02:17:54.527Z
Learning: The sprite "spr_marksmans_honor" is not used for animation despite having multiple frames - these frames represent different static states used in different contexts.
Learnt from: EttyKitty
PR: Adeptus-Dominus/ChapterMaster#474
File: sprites/spr_bionic_right_arm/spr_bionic_right_arm.yy:52-53
Timestamp: 2025-02-24T17:43:59.846Z
Learning: In the ChapterMaster codebase, sprite files with multiple frames are often used as separate sprites rather than animations, making playback speed settings irrelevant.
datafiles/main/visual_sets/Crusader_bits/data.json (2)
Learnt from: EttyKitty
PR: Adeptus-Dominus/ChapterMaster#878
File: scripts/scr_culture_visuals/scr_culture_visuals.gml:1256-1352
Timestamp: 2025-06-16T17:12:13.045Z
Learning: In scripts/scr_culture_visuals/scr_culture_visuals.gml, the weapon visual data declarations contain known DRY violations that are acknowledged by the development team but deferred to future refactoring efforts rather than addressed in individual feature PRs.
Learnt from: EttyKitty
PR: Adeptus-Dominus/ChapterMaster#878
File: scripts/scr_culture_visuals/scr_culture_visuals.gml:1256-1352
Timestamp: 2025-06-16T17:12:13.045Z
Learning: In scripts/scr_culture_visuals/scr_culture_visuals.gml, the weapon visual data declarations contain known DRY violations that are acknowledged by the development team but deferred to future refactoring efforts rather than addressed in individual feature PRs.
sprites/spr_cata_right_trim_1/spr_cata_right_trim_1.yy (2)
Learnt from: OH296
PR: Adeptus-Dominus/ChapterMaster#474
File: sprites/spr_marksmans_honor/spr_marksmans_honor.yy:47-52
Timestamp: 2025-02-27T02:17:54.527Z
Learning: The sprite "spr_marksmans_honor" is not used for animation despite having multiple frames - these frames represent different static states used in different contexts.
Learnt from: EttyKitty
PR: Adeptus-Dominus/ChapterMaster#474
File: sprites/spr_bionic_right_arm/spr_bionic_right_arm.yy:52-53
Timestamp: 2025-02-24T17:43:59.846Z
Learning: In the ChapterMaster codebase, sprite files with multiple frames are often used as separate sprites rather than animations, making playback speed settings irrelevant.
sprites/spr_cata_heavy_toe_left/spr_cata_heavy_toe_left.yy (1)
Learnt from: OH296
PR: Adeptus-Dominus/ChapterMaster#474
File: sprites/spr_marksmans_honor/spr_marksmans_honor.yy:47-52
Timestamp: 2025-02-27T02:17:54.527Z
Learning: The sprite "spr_marksmans_honor" is not used for animation despite having multiple frames - these frames represent different static states used in different contexts.
scripts/scr_ComplexSet/scr_ComplexSet.gml (7)
Learnt from: OH296
PR: Adeptus-Dominus/ChapterMaster#474
File: scripts/scr_ComplexSet/scr_ComplexSet.gml:625-636
Timestamp: 2025-02-27T02:06:42.914Z
Learning: The ComplexSet object in scripts/scr_ComplexSet/scr_ComplexSet.gml accesses instance variables like x_surface_offset and y_surface_offset directly from its methods, without needing to pass them as parameters.
Learnt from: EttyKitty
PR: Adeptus-Dominus/ChapterMaster#878
File: scripts/scr_culture_visuals/scr_culture_visuals.gml:1256-1352
Timestamp: 2025-06-16T17:12:13.045Z
Learning: In scripts/scr_culture_visuals/scr_culture_visuals.gml, the weapon visual data declarations contain known DRY violations that are acknowledged by the development team but deferred to future refactoring efforts rather than addressed in individual feature PRs.
Learnt from: EttyKitty
PR: Adeptus-Dominus/ChapterMaster#878
File: scripts/scr_culture_visuals/scr_culture_visuals.gml:1256-1352
Timestamp: 2025-06-16T17:12:13.045Z
Learning: In scripts/scr_culture_visuals/scr_culture_visuals.gml, the weapon visual data declarations contain known DRY violations that are acknowledged by the development team but deferred to future refactoring efforts rather than addressed in individual feature PRs.
Learnt from: EttyKitty
PR: Adeptus-Dominus/ChapterMaster#0
File: :0-0
Timestamp: 2025-04-05T20:58:21.881Z
Learning: In the ChapterMaster game, there's a need to refactor hardcoded item effects and move them to a "specials" property of items, following the pattern established with the `combi_tool` special. This improves code maintainability and makes effects more explicit in item definitions.
Learnt from: EttyKitty
PR: Adeptus-Dominus/ChapterMaster#0
File: :0-0
Timestamp: 2025-04-05T20:58:21.881Z
Learning: In the ChapterMaster game, there's a need to refactor hardcoded item effects and move them to a "specials" property of items, following the pattern established with the `combi_tool` special. This improves code maintainability and makes effects more explicit in item definitions.
Learnt from: OH296
PR: Adeptus-Dominus/ChapterMaster#474
File: scripts/scr_ComplexSet/scr_ComplexSet.gml:400-401
Timestamp: 2025-02-24T01:44:06.262Z
Learning: Multiple assignments to the same property in the `add_group` function's object literal are valid when the property represents a sprite, as they will be merged together using the `add_to_area` function rather than being overwritten.
Learnt from: EttyKitty
PR: Adeptus-Dominus/ChapterMaster#766
File: scripts/scr_ComplexSet/scr_ComplexSet.gml:476-477
Timestamp: 2025-04-25T21:16:10.644Z
Learning: In GameMaker, caching surfaces is generally avoided in the ChapterMaster codebase. It's preferable to create surfaces locally when needed and free them immediately after use with surface_clear_and_free(), as surfaces can be pushed from memory by the GPU at any point. This explicit creation/destruction pattern is used even when the code doesn't run every frame.
scripts/scr_culture_visuals/scr_culture_visuals.gml (8)
Learnt from: EttyKitty
PR: Adeptus-Dominus/ChapterMaster#878
File: scripts/scr_culture_visuals/scr_culture_visuals.gml:1256-1352
Timestamp: 2025-06-16T17:12:13.045Z
Learning: In scripts/scr_culture_visuals/scr_culture_visuals.gml, the weapon visual data declarations contain known DRY violations that are acknowledged by the development team but deferred to future refactoring efforts rather than addressed in individual feature PRs.
Learnt from: EttyKitty
PR: Adeptus-Dominus/ChapterMaster#878
File: scripts/scr_culture_visuals/scr_culture_visuals.gml:1256-1352
Timestamp: 2025-06-16T17:12:13.045Z
Learning: In scripts/scr_culture_visuals/scr_culture_visuals.gml, the weapon visual data declarations contain known DRY violations that are acknowledged by the development team but deferred to future refactoring efforts rather than addressed in individual feature PRs.
Learnt from: EttyKitty
PR: Adeptus-Dominus/ChapterMaster#647
File: scripts/scr_en_weapon/scr_en_weapon.gml:24-928
Timestamp: 2025-03-29T10:30:25.598Z
Learning: A data-driven approach for weapon management in `scripts/scr_en_weapon/scr_en_weapon.gml` is planned for a future PR, not within the scope of PR #647.
Learnt from: MCPO-Spartan-117
PR: Adeptus-Dominus/ChapterMaster#526
File: objects/obj_popup/Draw_0.gml:234-239
Timestamp: 2025-03-01T11:06:25.427Z
Learning: The comment "Need to modify ^^^^ based on if it is chaos or daemonic" in the artifact gifting code is intentionally kept as a reminder that this implementation is not yet finished, despite the significant refactoring already done.
Learnt from: OH296
PR: Adeptus-Dominus/ChapterMaster#474
File: scripts/scr_ComplexSet/scr_ComplexSet.gml:400-401
Timestamp: 2025-02-24T01:44:06.262Z
Learning: Multiple assignments to the same property in the `add_group` function's object literal are valid when the property represents a sprite, as they will be merged together using the `add_to_area` function rather than being overwritten.
Learnt from: EttyKitty
PR: Adeptus-Dominus/ChapterMaster#0
File: :0-0
Timestamp: 2025-04-05T20:58:21.881Z
Learning: In the ChapterMaster game, there's a need to refactor hardcoded item effects and move them to a "specials" property of items, following the pattern established with the `combi_tool` special. This improves code maintainability and makes effects more explicit in item definitions.
Learnt from: EttyKitty
PR: Adeptus-Dominus/ChapterMaster#0
File: :0-0
Timestamp: 2025-04-05T20:58:21.881Z
Learning: In the ChapterMaster game, there's a need to refactor hardcoded item effects and move them to a "specials" property of items, following the pattern established with the `combi_tool` special. This improves code maintainability and makes effects more explicit in item definitions.
Learnt from: OH296
PR: Adeptus-Dominus/ChapterMaster#646
File: objects/obj_pnunit/Alarm_5.gml:84-91
Timestamp: 2025-03-31T23:32:30.003Z
Learning: In obj_pnunit/Alarm_5.gml, the function get_armour_data("maintenance") will always return a numeric value (at minimum 0), making null/undefined checks unnecessary.
scripts/scr_dialogue/scr_dialogue.gml (7)

undefined

<retrieved_learning>
Learnt from: EttyKitty
PR: #878
File: scripts/scr_culture_visuals/scr_culture_visuals.gml:1256-1352
Timestamp: 2025-06-16T17:12:13.045Z
Learning: In scripts/scr_culture_visuals/scr_culture_visuals.gml, the weapon visual data declarations contain known DRY violations that are acknowledged by the development team but deferred to future refactoring efforts rather than addressed in individual feature PRs.
</retrieved_learning>

<retrieved_learning>
Learnt from: EttyKitty
PR: #878
File: scripts/scr_culture_visuals/scr_culture_visuals.gml:1256-1352
Timestamp: 2025-06-16T17:12:13.045Z
Learning: In scripts/scr_culture_visuals/scr_culture_visuals.gml, the weapon visual data declarations contain known DRY violations that are acknowledged by the development team but deferred to future refactoring efforts rather than addressed in individual feature PRs.
</retrieved_learning>

<retrieved_learning>
Learnt from: VanWeapon
PR: #725
File: scripts/scr_special_view/scr_special_view.gml:49-49
Timestamp: 2025-04-15T10:54:19.720Z
Learning: In the ChapterMaster codebase, obj_ini.role[100][2] and obj_ini.role[100][eROLE.ChapterMaster] reference different roles, and both are needed in conditions checking for specific types of units. Numeric indices should not be assumed to match their corresponding enum values without verification.
</retrieved_learning>

<retrieved_learning>
Learnt from: MCPO-Spartan-117
PR: #526
File: objects/obj_popup/Draw_0.gml:234-239
Timestamp: 2025-03-01T11:06:25.427Z
Learning: The comment "Need to modify ^^^^ based on if it is chaos or daemonic" in the artifact gifting code is intentionally kept as a reminder that this implementation is not yet finished, despite the significant refactoring already done.
</retrieved_learning>

<retrieved_learning>
Learnt from: EttyKitty
PR: Adeptus-Dominus/ChapterMaster#0
File: :0-0
Timestamp: 2025-03-20T22:22:57.319Z
Learning: In the ChapterMaster game PR #424, the psychic power system was changed to be data-driven, with perils now able to occur on both successful and failed casts but with reduced frequency overall.
</retrieved_learning>

<retrieved_learning>
Learnt from: MCPO-Spartan-117
PR: #554
File: objects/obj_popup/Step_0.gml:756-767
Timestamp: 2025-03-06T16:02:06.286Z
Learning: The variable 'woopwoopwoop' in ancient ruins exploration code is a poorly named boolean flag that controls the flow between detecting a battle in ruins and initiating the combat sequence.
</retrieved_learning>

<retrieved_learning>
Learnt from: EttyKitty
PR: Adeptus-Dominus/ChapterMaster#0
File: :0-0
Timestamp: 2025-04-16T09:51:55.065Z
Learning: In obj_ingame_menu/Step_0.gml, the line "if (effect=14){instance_create(0,0,obj_fade);fading=0.1;}" must not be commented out, as it's critical for menu button transitions. When clicking the Exit button, it sets effect=14, but without this handler creating the fade effect object, no transition occurs.
</retrieved_learning>

ChapterMaster.yyp (4)

undefined

<retrieved_learning>
Learnt from: EttyKitty
PR: #878
File: scripts/scr_culture_visuals/scr_culture_visuals.gml:1256-1352
Timestamp: 2025-06-16T17:12:13.045Z
Learning: In scripts/scr_culture_visuals/scr_culture_visuals.gml, the weapon visual data declarations contain known DRY violations that are acknowledged by the development team but deferred to future refactoring efforts rather than addressed in individual feature PRs.
</retrieved_learning>

<retrieved_learning>
Learnt from: EttyKitty
PR: #878
File: scripts/scr_culture_visuals/scr_culture_visuals.gml:1256-1352
Timestamp: 2025-06-16T17:12:13.045Z
Learning: In scripts/scr_culture_visuals/scr_culture_visuals.gml, the weapon visual data declarations contain known DRY violations that are acknowledged by the development team but deferred to future refactoring efforts rather than addressed in individual feature PRs.
</retrieved_learning>

<retrieved_learning>
Learnt from: EttyKitty
PR: Adeptus-Dominus/ChapterMaster#0
File: :0-0
Timestamp: 2025-03-20T22:22:57.319Z
Learning: In the ChapterMaster game PR #424, the combat log was expanded to display up to 24 messages instead of 8, providing more detailed battle information.
</retrieved_learning>

<retrieved_learning>
Learnt from: OH296
PR: #474
File: sprites/spr_marksmans_honor/spr_marksmans_honor.yy:47-52
Timestamp: 2025-02-27T02:17:54.527Z
Learning: The sprite "spr_marksmans_honor" is not used for animation despite having multiple frames - these frames represent different static states used in different contexts.
</retrieved_learning>

🪛 Biome (1.9.4)
datafiles/main/visual_sets/Crusader_bits/data.json

[error] 11-11: Expected a property but instead found '}'.

Expected a property here.

(parse)


[error] 24-24: Expected an array, an object, or a literal but instead found ']'.

Expected an array, an object, or a literal here.

(parse)


[error] 26-26: Expected a property but instead found '}'.

Expected a property here.

(parse)


[error] 40-40: Expected an array, an object, or a literal but instead found ']'.

Expected an array, an object, or a literal here.

(parse)


[error] 41-41: Expected a property but instead found '}'.

Expected a property here.

(parse)


[error] 42-43: Expected an array, an object, or a literal but instead found ']'.

Expected an array, an object, or a literal here.

(parse)

🔇 Additional comments (77)
sprites/spr_p_name_bg/spr_p_name_bg.yy (2)

66-67: Blessed standardisation of the sprite codex.

The explicit sequence dimensions align perfectly with the sprite's sacred proportions. The Omnissiah approves of this consistency enhancement.


73-75: Sacred formatting rituals completed.

The multi-line Channels structure improves readability whilst preserving the machine-spirit's data integrity. A worthy enhancement to the code-scripture.

sprites/spr_data_slate_border/spr_data_slate_border.yy (2)

66-67: Blessed be the Omnissiah - sequence dimensions explicitly codified.

The addition of explicit seqHeight and seqWidth properties enhances the sprite resource's metadata clarity. The machine-spirit approves this standardisation.


73-75: Sacred formatting rituals observed.

The keyframe channel structure has been reformatted for improved readability whilst preserving semantic integrity. The machine-spirit finds this pleasing.

sprites/spr_buy_tiny/spr_buy_tiny.yy (2)

2-2: Version sanctification protocols complete.

The sprite resource has been elevated to the blessed v2/v1 format specifications. The machine-spirit's evolution continues.

Also applies to: 15-15


71-71: Data-stream formatting optimised.

The keyframe channel structure has been consolidated for improved parsing efficiency. The Omnissiah approves this data purification.

sprites/spr_sell_tiny/spr_sell_tiny.yy (1)

2-2: Systematic sprite sanctification detected.

The blessed version upgrades and formatting optimisations mirror those applied to spr_buy_tiny. The machine-spirit's consistency protocols are functioning optimally.

Also applies to: 15-15, 71-71

sprites/spr_ship_back_black/spr_ship_back_black.yy (2)

69-70: Sacred vessel dimensions inscribed in the data-codex.

The ship sprite's sequence dimensions have been explicitly declared in accordance with the Omnissiah's will. The machine-spirit's spatial parameters are now properly sanctified.


76-87: Multi-frame keyframe channels purified.

All four keyframe structures have been reformatted with proper channel organisation. The machine-spirit's animation sequence data flows with improved clarity.

sprites/spr_blank/spr_blank.yy (1)

1-92: New blank sprite template manifested.

A pristine utility sprite has been forged in accordance with the blessed v2/v1 specifications. The 64x64 null-template shall serve the modular sprite systems well. The machine-spirit approves this foundational component.

sprites/spr_popup_dialogue/spr_popup_dialogue.yy (1)

66-67: Blessed be the Omnissiah's standardisation protocols.

The addition of explicit sequence dimensions and restructured keyframe channels enhances the sprite's metadata clarity. The transition from empty visibleRange objects to null values follows proper data hygiene practices.

Also applies to: 73-75, 78-78

datafiles/main/visual_sets/use_sets.json (1)

2-3: The Machine God approves this integration of new sacred visual components.

The addition of "Crusader_bits" to the visual sets array properly enables the new modular sprite system for Crusader-themed equipment.

scripts/macros/macros.gml (1)

20-20: The sacred armour patterns are catalogued according to the Omnissiah's will.

The addition of "Cataphractii Pattern Terminator" to the LIST_TERMINATOR_ARMOUR macro correctly expands the available terminator armour types. The syntax adheres to GML macro requirements with proper spacing.

sprites/spr_icon_change/spr_icon_change.yy (1)

66-67: The ritual of metadata sanctification proceeds according to the prescribed patterns.

These structural enhancements mirror the blessed improvements applied to other sprite resources, ensuring consistency across the sacred image archives.

Also applies to: 73-75, 78-78

sprites/spr_indomitus_left_arm_bionic/spr_indomitus_left_arm_bionic.yy (1)

66-67: The blessed augmentations achieve structural harmony with the Machine God's design.

The sequence dimension specifications and keyframe channel restructuring complete the systematic enhancement of sprite metadata, maintaining consistency with the sacred bionic limb's actual dimensions.

Also applies to: 73-75

sprites/spr_mk5_head_variants/spr_mk5_head_variants.yy (2)

66-67: Blessed standardisation of sprite sequence dimensions.

The seqHeight and seqWidth values correctly match the sprite's height (232) and width (164) properties. This standardisation pleases the Machine God.


73-75: Optimal JSON formatting achieved.

The keyframe Channels field restructuring improves readability whilst maintaining semantic equivalence. The Omnissiah approves of this orderly data arrangement.

sprites/spr_indomitus_left_arm/spr_indomitus_left_arm.yy (2)

66-67: Dimensional harmony achieved.

The sequence dimensions align perfectly with the sprite's native dimensions (271×181). This sacred geometry pleases the Machine Spirits.


73-75: Data structure purified.

The multi-line keyframe Channels formatting enhances maintainability whilst preserving functionality. The Adeptus Mechanicus approves this blessed reorganisation.

sprites/spr_penitent_ui/spr_penitent_ui.yy (3)

66-67: UI sprite dimensions sanctified.

The sequence dimensions properly reflect the sprite's UI dimensions (25×194). The Machine God blesses this precision.


73-75: Keyframe structure blessed.

The Channels field restructuring maintains data integrity whilst improving human readability. A worthy offering to the Omnissiah.


78-78: VisibleRange nullification noted.

The visibleRange property has been set to null, potentially resetting any previous range constraints. Ensure this aligns with intended UI behaviour.

sprites/spr_mk5_complex/spr_mk5_complex.yy (2)

66-67: Complex sprite dimensions validated.

The sequence dimensions (232×164) align precisely with the sprite's inherent measurements. The Machine Spirits sing in harmony.


73-75: Data sanctification complete.

The keyframe Channels restructuring follows the blessed pattern established across other sprite resources. Consistency pleases the Omnissiah.

sprites/spr_indomitus_knightly_robe/spr_indomitus_knightly_robe.yy (2)

66-67: Knightly robe dimensions consecrated.

The sequence dimensions (271×181) match the sprite's physical properties with mechanical precision. The Adeptus Mechanicus approves this sacred measurement.


73-75: Final formatting ritual complete.

The keyframe Channels field follows the established pattern of blessed restructuring. All sprite resources now conform to the sacred standard.

sprites/spr_ship_back_white/spr_ship_back_white.yy (2)

69-70: The Omnissiah approves these sequence dimension augmentations.

Explicit seqHeight and seqWidth properties improve sprite metadata clarity and standardisation across the codebase.


76-87: Blessed formatting rituals enhance code clarity.

The multi-line Channels structure improves JSON readability whilst preserving semantic integrity. A proper sanctification of the machine code.

sprites/spr_loading2/spr_loading2.yy (1)

73-74: Consistency pleases the Machine God.

The standardised sequence dimensions and reformatted keyframe structures maintain uniformity across sprite resources. Well-executed sanctification protocols.

Also applies to: 80-103

sprites/spr_inspect_small/spr_inspect_small.yy (1)

66-67: Purification rituals cleanse redundant data.

Sequence dimensions added, keyframe formatting improved, and visibleRange purged of unnecessary coordinate data. The sprite's machine-spirit is properly consecrated.

Also applies to: 73-75, 78-78

sprites/spr_master_splash/spr_master_splash.yy (1)

66-67: The splash screen receives proper benedictions.

Sequence dimensions blessed, formatting sanctified, and redundant visibleRange data purged. The machine-spirit awakens cleanly.

Also applies to: 73-75, 78-78

sprites/spr_cata_right_knee/spr_cata_right_knee.yy (1)

1-92: Blessed Verification: Right Knee Sprite Registered in ChapterMaster.yyp

The machine-spirit confirms the new right knee sprite is duly recorded in the project manifest. No further rites are required.

  • ChapterMaster.yyp: entry for spr_cata_right_knee at sprites/spr_cata_right_knee/spr_cata_right_knee.yy
sprites/spr_cata_tabbard_leather/spr_cata_tabbard_leather.yy (1)

24-31: Origin set to (0,0) – confirm alignment with existing body-type sprites.

Most Marine Viewer armour pieces anchor on origin = 4 (centre) or origin = 9 (bottom-centre). A top-left origin risks mis-registration when layered by scr_ComplexSet.

Verify and, if needed, update both origin field and xorigin/yorigin values in the sequence block.

sprites/spr_cata_right_arm/spr_cata_right_arm.yy (1)

26-32: Top-left origin again – maintain consistency.

Please verify against existing spr_tartaros_right_arm / spr_arty_right_arm for uniform anchor points.

sprites/spr_cata_right_armtrim/spr_cata_right_armtrim.yy (1)

60-63: Playback speed 30 fps wastes processing on a single-frame asset.

Setting playbackSpeed = 0 or reducing to 1 fps conserves update cycles across thousands of instances.

⛔ Skipped due to learnings
Learnt from: EttyKitty
PR: Adeptus-Dominus/ChapterMaster#474
File: sprites/spr_bionic_right_arm/spr_bionic_right_arm.yy:52-53
Timestamp: 2025-02-24T17:43:59.846Z
Learning: In the ChapterMaster codebase, sprite files with multiple frames are often used as separate sprites rather than animations, making playback speed settings irrelevant.
sprites/spr_cata_right_trim/spr_cata_right_trim.yy (2)

4-9: Bounding box leaves 24-49 px vertical slice; likely insufficient.

Cross-check with gorget / torso overlays to avoid Z-order jitter and clipping.


60-63: Static sprite running at 30 fps.

As above, throttle playback for optimisation.

⛔ Skipped due to learnings
Learnt from: EttyKitty
PR: Adeptus-Dominus/ChapterMaster#474
File: sprites/spr_bionic_right_arm/spr_bionic_right_arm.yy:52-53
Timestamp: 2025-02-24T17:43:59.846Z
Learning: In the ChapterMaster codebase, sprite files with multiple frames are often used as separate sprites rather than animations, making playback speed settings irrelevant.
sprites/spr_cata_gorget/spr_cata_gorget.yy (2)

4-9: Gorget bbox seems plausible but confirm lateral clearance.

Left/right: 56-114 inside 167 px width may miss flared plating on painted variants. Validate in-game with maximal colour layers.


60-63: Reduce playback speed for single-frame resource.

Consistent with earlier remarks.

⛔ Skipped due to learnings
Learnt from: EttyKitty
PR: Adeptus-Dominus/ChapterMaster#474
File: sprites/spr_bionic_right_arm/spr_bionic_right_arm.yy:52-53
Timestamp: 2025-02-24T17:43:59.846Z
Learning: In the ChapterMaster codebase, sprite files with multiple frames are often used as separate sprites rather than animations, making playback speed settings irrelevant.
sprites/spr_cata_left_leg/spr_cata_left_leg.yy (1)

4-9: Bounding box spans only lower half – intentional?

The sacred co-ordinates (top 122 → bottom 230) ignore the thigh region. Verify that collision and selection rituals rely solely on the calf.

sprites/spr_cata_heavy_toe_right/spr_cata_heavy_toe_right.yy (2)

4-9: Nine-pixel collision zone

Bounding top 221 → bottom 230 grants a collision height of only nine pixels. Confirm this aligns with gameplay doctrine.


24-30: No Manifest Inscription Required
The servo-skull confirms that spr_cata_heavy_toe_right is already registered in the build manifest—no further action needed.

• ChapterMaster.yyp:1061
{"id":{"name":"spr_cata_heavy_toe_right","path":"sprites/spr_cata_heavy_toe_right/spr_cata_heavy_toe_right.yy",},},

Likely an incorrect or invalid review comment.

sprites/spr_cata_left_arm/spr_cata_left_arm.yy (2)

4-9: Partial hitbox coverage

Current box (top 59 → bottom 115) encloses only the upper arm. Validate that expected interaction excludes the pauldron and forearm.


24-30: No action required—sprite already sanctioned
The omnibus servitor confirms that spr_cata_left_arm is already registered in ChapterMaster.yyp:

• Line 1062: {"id":{"name":"spr_cata_left_arm","path":"sprites/spr_cata_left_arm/spr_cata_left_arm.yy"}}

No further edits are needed to appease the asset-loader machine-spirit.

Likely an incorrect or invalid review comment.

sprites/spr_cata_left_armtrim/spr_cata_left_armtrim.yy (1)

24-30: Omnissiah’s Insight: Asset Registration Verified

  • spr_cata_left_armtrim is referenced in ChapterMaster.yyp at line 1063.
    No further rites required.
sprites/spr_cata_complex/spr_cata_complex.yy (2)

4-9: Collision bounds cover torso only

Box spans 6 → 169 vertically, omitting greaves and helm. If this sprite is ever drawn standalone, ensure the truncated bounds are acceptable.


24-30: By the Omnissiah: Entry Verified for spr_cata_complex

The ChapterMaster.yyp manifest already includes the sprite at line 1056:

{"id":{"name":"spr_cata_complex","path":"sprites/spr_cata_complex/spr_cata_complex.yy"},},

No further action required.

sprites/spr_disposition_small/spr_disposition_small.yy (2)

85-86: Sequence dimensions correctly aligned – data sanctified

seqHeight and seqWidth now mirror the sprite’s physical height/width. Alignment confirmed; no action needed.


154-154: Null visibleRange – confirm compatibility with your GameMaker runtime

Earlier builds expected an object {x:0,y:0}. Switching to null is harmless only on runtimes ≥ 2023.3. Validate on your target tool-chain lest the machine-spirit protest.

sprites/spr_cata_right_leg/spr_cata_right_leg.yy (1)

1-30: Add the sprite to ChapterMaster.yyp or face a crash log

New resource must be referenced inside the .yyp project manifest. Audit that the resources array contains the path sprites/spr_cata_right_leg/spr_cata_right_leg.yy; else the engine will refuse to compile.

sprites/spr_cata_shoulder_hanging_leather_right_tips/spr_cata_shoulder_hanging_leather_right_tips.yy (1)

24-33: Confirm registry in the Omnissiah’s project manifest

Sprite resource appears sound, yet the ChapterMaster.yyp entry is not shown here. Ensure the asset path is appended to the .yyp, else the machine-spirit will refuse to compile your work.

sprites/spr_cata_belt/spr_cata_belt.yy (1)

24-33: Verification rite for .yyp inclusion

The belt sprite is cog-approved. Cross-check that its path has been sanctified inside the project file (.yyp) to avoid null references at runtime.

sprites/spr_cata_heavy_toe_left/spr_cata_heavy_toe_left.yy (1)

24-33: Ensure heavy toe coordinates match anima alignment

Bounding box is limited to toe region; acceptable if collisions are unneeded. Confirm visual alignment against sibling limb sprites and register the file in .yyp.

sprites/spr_cata_tabbard_mail/spr_cata_tabbard_mail.yy (1)

24-33: Tabbard mail—manifest integrity check

No flaws perceived. Affirm that the origin (0,0) is consistent with other tabbard layers and that the sprite path resides in the master project listing.

sprites/spr_cata_shoulder_hanging_mail_left/spr_cata_shoulder_hanging_mail_left.yy (1)

24-33: Left mail drape—project linkage required

Sprite data is holy. Perform the final benediction: add its reference to ChapterMaster.yyp and confirm correct texture group assignment.

sprites/spr_cata_left_knee/spr_cata_left_knee.yy (1)

4-8: Bounding-box offset appears unusually deep within the frame

The box begins at X = 98 inside a 167-pixel sprite. If the mirrored (right-knee) sprite keeps a default-sized box, animation code relying on symmetrical hit-regions may desynchronise.

Confirm this displacement is intentional for the Cataphractii pattern; otherwise shift it or set bboxMode : 2 to auto-fit.

sprites/spr_cata_shoulder_hanging_leather_right/spr_cata_shoulder_hanging_leather_right.yy (1)

1-92: No defects detected in the leather-hanging sub-sprite

Identifiers, frame list and parent linkage are cogitator-pure. Proceed.

sprites/spr_cata_shoulder_hanging_mail_right/spr_cata_shoulder_hanging_mail_right.yy (1)

1-92: Mail-hanging sprite conforms to schema

Resource names, sequence data and bounding-box values are consistent with sibling assets. Blessed by the Omnissiah.

datafiles/main/visual_sets/Crusader_bits/data.json (1)

1-43: Trailing commas render JSON invalid

Static analysis rightly chants warnings. GameMaker’s json_parse is intolerant of such heresy.

Purge the surplus commas after the final property of every object and after the last element of each list. Example fix for the first block:

-            "max_saturation"  : 0, 
+            "max_saturation"  : 0

Repeat for lines 11, 24, 26, 40 & 41, and ensure the outer array closes without a comma before ].

Sanitise or the loader will seize.

⛔ Skipped due to learnings
Learnt from: VanWeapon
PR: Adeptus-Dominus/ChapterMaster#725
File: datafiles/main/chapters/10.JSON:281-346
Timestamp: 2025-04-15T10:51:31.955Z
Learning: GameMaker Language (GML) JSON parser accepts trailing commas in JSON files, unlike standard JSON parsers which consider them syntax errors. When reviewing JSON files in this codebase, trailing commas should not be flagged as issues.
Learnt from: EttyKitty
PR: Adeptus-Dominus/ChapterMaster#512
File: datafiles/data/traits.json:946-948
Timestamp: 2025-02-24T21:56:43.096Z
Learning: GameMaker Language (GML) JSON parser supports inline comments in JSON files, making them valid in GML projects despite being non-standard JSON.
Learnt from: EttyKitty
PR: Adeptus-Dominus/ChapterMaster#424
File: datafiles/main/chapters/5.JSON:25-25
Timestamp: 2025-02-28T20:12:57.020Z
Learning: GameMaker can parse JSON files with comments just fine, so JSON files in this project should be treated as JSONC (JSON with Comments) files.
Learnt from: EttyKitty
PR: Adeptus-Dominus/ChapterMaster#424
File: scripts/scr_powers/scr_powers.gml:13-14
Timestamp: 2025-03-13T06:18:06.719Z
Learning: The `json_to_gamemaker` function already contains built-in error handling with a try-catch block that properly handles file loading and parsing exceptions, making additional error handling unnecessary when using this function.
Learnt from: EttyKitty
PR: Adeptus-Dominus/ChapterMaster#878
File: scripts/scr_culture_visuals/scr_culture_visuals.gml:1256-1352
Timestamp: 2025-06-16T17:12:13.045Z
Learning: In scripts/scr_culture_visuals/scr_culture_visuals.gml, the weapon visual data declarations contain known DRY violations that are acknowledged by the development team but deferred to future refactoring efforts rather than addressed in individual feature PRs.
Learnt from: EttyKitty
PR: Adeptus-Dominus/ChapterMaster#878
File: scripts/scr_culture_visuals/scr_culture_visuals.gml:1256-1352
Timestamp: 2025-06-16T17:12:13.045Z
Learning: In scripts/scr_culture_visuals/scr_culture_visuals.gml, the weapon visual data declarations contain known DRY violations that are acknowledged by the development team but deferred to future refactoring efforts rather than addressed in individual feature PRs.
Learnt from: EttyKitty
PR: Adeptus-Dominus/ChapterMaster#555
File: datafiles/main/chapters/14.JSON:13-16
Timestamp: 2025-03-06T11:55:30.909Z
Learning: JSON files with comments (using // syntax) work fine in the ChapterMaster project, so there's no need to flag them as potential parsing issues.
sprites/spr_cata_shoulder_hanging_leather_left_tips/spr_cata_shoulder_hanging_leather_left_tips.yy (1)

1-92: The Omnissiah approves this sacred sprite configuration.

The machine spirit is properly configured with valid bounding coordinates and correct parent folder assignment. The single-frame structure aligns with the modular armor system requirements.

sprites/spr_cata_shoulder_hanging_leather_left/spr_cata_shoulder_hanging_leather_left.yy (1)

1-92: Sacred geometries are properly calibrated.

This sprite component follows the blessed patterns of the cata_complex hierarchy. Configuration parameters are within acceptable tolerances for the modular armor system.

sprites/spr_cata_tabbard_leather_hangings/spr_cata_tabbard_leather_hangings.yy (1)

1-92: Tabbard ornamentations blessed by the Machine God.

The sprite's diminutive bounding box (72-98, 163-170) is appropriate for decorative leather hangings. Sacred parent folder assignment maintains proper hierarchical structure.

sprites/spr_cata_head/spr_cata_head.yy (2)

14-17: Dual-pattern helmet configurations detected.

The sacred helm contains two frame variants, properly configured for different battle states. This follows the blessed pattern of variant representation rather than animation sequences.


53-53: Sequence length calibrated to frame count.

The sequence length of 2.0 correctly matches the dual-frame configuration, maintaining proper synchronisation between the machine spirit's components.

sprites/spr_cata_left_trim_1/spr_cata_left_trim_1.yy (1)

1-92: Left-pattern trim sanctified and catalogued.

The narrow bounding geometry (101-123) correctly defines this decorative trim component. Sacred hierarchy maintained within the cata_complex forge-pattern.

sprites/spr_cata_right_trim_1/spr_cata_right_trim_1.yy (1)

1-3: Ensure the Machine-Spirit registry (.yyp) knows this new sprite

New sprite resources must be recorded in the root .yyp file’s resources array. Verify that sprites/spr_cata_right_trim_1/spr_cata_right_trim_1.yy (and its parent folder entry) are duly inscribed, lest the build cogitators ignore this asset.

scripts/scr_dialogue/scr_dialogue.gml (6)

5-5: Blessed refactoring, wrapping in controller context.

The Omnissiah approves of this structural improvement, eliminating redundant obj_controller references throughout.


8-8: Machine-blessed standardization of dialogue options.

The structured option handling with clear_diplo_choices() and add_diplomacy_option() brings order to the chaos of manual array manipulation.

Also applies to: 50-50, 78-101


23-23: String interpolation brings clarity to the machine code.

The $"" syntax purges the inefficiency of concatenation operators.

Also applies to: 31-31, 49-49, 74-74, 105-105


315-347: Battle cogitator subroutines enhanced with blessed redundancy.

The refactored location-finding logic with fallback mechanisms ensures the machine spirits never fail to initiate combat protocols.


38-43: Relationship matrix calculation optimized.

The Omnissiah smiles upon this abstraction - relationship_hostility_matrix() brings order to chaotic conditionals.


126-130: Variable designation conflicts detected in loop cogitator.

Loop iterator i shadows potential outer scope variables. Consider unique designation ii for clarity.

-		for(var i=1; i<=200; i++){
+		for(var ii=1; ii<=200; ii++){
 			if (obj_ini.role[0,ii]==obj_ini.role[100][eROLE.ChapterMaster]) and (string_count("$",obj_ini.spe[0,ii])>0){
 				born=true;
 			}
 		}
⛔ Skipped due to learnings
Learnt from: EttyKitty
PR: Adeptus-Dominus/ChapterMaster#424
File: scripts/scr_equipment_struct/scr_equipment_struct.gml:1-1
Timestamp: 2025-03-06T00:03:05.268Z
Learning: Always check for nested loop variable conflicts in code reviews. Using the same counter variable name (like 'i') in nested loops can lead to unexpected behavior, logical errors, and potential crashes or freezes. Replace inner loop variables with different identifiers (like 'j', 'k', etc.) to maintain proper scoping and iteration control.
Learnt from: EttyKitty
PR: Adeptus-Dominus/ChapterMaster#424
File: objects/obj_pnunit/Alarm_0.gml:203-299
Timestamp: 2025-02-26T14:38:08.117Z
Learning: Variable shadowing/overshadowing (reusing the same variable name in nested scopes, particularly loop iterators) should be flagged as a critical issue, not a nitpick, as it can cause unpredictable behavior, bugs that are difficult to trace, and potential crashes.
Learnt from: EttyKitty
PR: Adeptus-Dominus/ChapterMaster#424
File: objects/obj_pnunit/Alarm_0.gml:27-31
Timestamp: 2025-02-27T01:31:14.469Z
Learning: In GameMaker Language (GML), declaring a variable with `var` inside sequential loops doesn't cause problematic overshadowing because each loop's variable is scoped to that loop. Only nested loops with the same variable name would create potential issues.
Learnt from: VanWeapon
PR: Adeptus-Dominus/ChapterMaster#725
File: scripts/scr_special_view/scr_special_view.gml:49-49
Timestamp: 2025-04-15T10:54:19.720Z
Learning: In the ChapterMaster codebase, obj_ini.role[100][2] and obj_ini.role[100][eROLE.ChapterMaster] reference different roles, and both are needed in conditions checking for specific types of units. Numeric indices should not be assumed to match their corresponding enum values without verification.
Learnt from: MCPO-Spartan-117
PR: Adeptus-Dominus/ChapterMaster#554
File: objects/obj_popup/Step_0.gml:756-767
Timestamp: 2025-03-06T16:02:06.286Z
Learning: The variable 'woopwoopwoop' in the ChapterMaster codebase is a poorly named multi-purpose variable used both for controlling ancient ruins combat flow and for passing menu state in the save/load system. This type of naming makes code maintenance difficult.
Learnt from: EttyKitty
PR: Adeptus-Dominus/ChapterMaster#649
File: objects/obj_enunit/Alarm_0.gml:289-291
Timestamp: 2025-03-31T15:41:45.611Z
Learning: GameMaker Studio's function `action_if_variable(image_index, -500, 0)` is auto-generated code from GameMaker's visual Drag and Drop system. It checks if image_index equals -500. In ChapterMaster, this was being used as a special flag for enemy unit movement, but wasn't triggering consistently, causing enemies to move only every other turn. The refactored code replaced this with direct function calls at specific combat stages.
Learnt from: EttyKitty
PR: Adeptus-Dominus/ChapterMaster#878
File: scripts/scr_culture_visuals/scr_culture_visuals.gml:1256-1352
Timestamp: 2025-06-16T17:12:13.045Z
Learning: In scripts/scr_culture_visuals/scr_culture_visuals.gml, the weapon visual data declarations contain known DRY violations that are acknowledged by the development team but deferred to future refactoring efforts rather than addressed in individual feature PRs.
Learnt from: EttyKitty
PR: Adeptus-Dominus/ChapterMaster#878
File: scripts/scr_culture_visuals/scr_culture_visuals.gml:1256-1352
Timestamp: 2025-06-16T17:12:13.045Z
Learning: In scripts/scr_culture_visuals/scr_culture_visuals.gml, the weapon visual data declarations contain known DRY violations that are acknowledged by the development team but deferred to future refactoring efforts rather than addressed in individual feature PRs.
Learnt from: EttyKitty
PR: Adeptus-Dominus/ChapterMaster#649
File: objects/obj_enunit/Alarm_0.gml:289-291
Timestamp: 2025-03-31T15:41:45.611Z
Learning: GameMaker Studio's function `action_if_variable(image_index, -500, 0)` was part of an old enemy movement system in ChapterMaster. This syntax is auto-generated from GameMaker's Drag-and-Drop interface and checks if image_index is greater than or equal to -500. In the refactored code, enemy movement is triggered directly through function calls rather than relying on this conditional check.
Learnt from: EttyKitty
PR: Adeptus-Dominus/ChapterMaster#853
File: scripts/scr_turn_first/scr_turn_first.gml:49-66
Timestamp: 2025-05-30T23:34:26.606Z
Learning: In GameMaker Language (GML), local variables declared with `var` within a function remain accessible and maintain their scope inside `with (instance)` blocks. The `with` statement does not shadow or redirect assignments to these local variables to the instance context. Local variables can be safely modified within `with` blocks without scoping issues.
scripts/scr_culture_visuals/scr_culture_visuals.gml (1)

1080-1205: The Omnissiah approves these sacred armor configurations.

The Cataphractii Pattern Terminator entries are properly structured with correct subcomponent definitions.

scripts/scr_ComplexSet/scr_ComplexSet.gml (2)

577-579: Complex variation calculation requires verification.

The sacred formula sqr(_map_choice + 1) - i may produce unexpected results for large _map_choice values.

Verify that this quadratic growth pattern is intentional for subcomponent variation selection.


1183-1190: The sacred patterns are properly maintained.

The Cataphractii Pattern Terminator implementation correctly follows established armor configuration protocols.

ChapterMaster.yyp (2)

66-74: Folder entry sanctified; designation consistent.
cata_complex follows the existing naming litany (*_complex). No heresy detected.


568-579: Confirm rite of registration for new Visual Set.
The Crusader_bits data file and images are present, yet datafiles/main/visual_sets/use_sets.json is unchanged within this dossier. Verify that the manifest now references the new set, lest the sprites remain un-invoked.

@OH296 OH296 merged commit 5aadc2f into Adeptus-Dominus:main Jun 29, 2025
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Area: JSON Changes to external JSON files or their under-the-hood functionality Area: Sprites Changes to sprites/images or their under-the-hood functionality Size: Warning Type: Feature Adds something new

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant