refactor: Specialist points processing for DX#1139
Conversation
|
Caution Review failedThe pull request is closed. ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Pro Run ID: 📒 Files selected for processing (1)
📝 Walkthrough
WalkthroughTech‑Priest: Changes
Possibly related PRs
🚥 Pre-merge checks | ✅ 2 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (2 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. 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. Comment |
There was a problem hiding this comment.
Actionable comments posted: 3
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Pro
Run ID: 935f9471-7067-43e8-8601-9159b4fdc88f
📒 Files selected for processing (2)
scripts/scr_apothecary_ground/scr_apothecary_ground.gmlscripts/scr_specialist_point_handler/scr_specialist_point_handler.gml
📜 Review details
🧰 Additional context used
📓 Path-based instructions (2)
**/*.gml
⚙️ CodeRabbit configuration file
- All code should comply with the 2026 GML documentation.
Files:
scripts/scr_specialist_point_handler/scr_specialist_point_handler.gmlscripts/scr_apothecary_ground/scr_apothecary_ground.gml
**/*.*
⚙️ CodeRabbit configuration file
**/*.*: - Code Philosophy: Prioritize explicit intent and maintainability over brevity. If a
solution is "clever" but mentally taxing, request a refactor to a clearer approach.
Variable Naming: Use clear, descriptive names; avoid over-abbreviation.
Abstraction: Apply the "Rule of Three"; suggest abstraction only when similar logic is
repeated three or more times to avoid premature complexity.Subjective Choices: For naming or architecture, ask guiding questions to prompt developer
reflection and provide at least two alternative perspectives.TODOs: If a TODO comment is added, ask the user if a GitHub issue should be created. If a
TODO comment is deleted, remind the user to check the status of that specific issue.
Files:
scripts/scr_specialist_point_handler/scr_specialist_point_handler.gmlscripts/scr_apothecary_ground/scr_apothecary_ground.gml
🧠 Learnings (3)
📓 Common learnings
Learnt from: EttyKitty
Repo: Adeptus-Dominus/ChapterMaster PR: 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
Repo: Adeptus-Dominus/ChapterMaster PR: 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
Repo: Adeptus-Dominus/ChapterMaster PR: 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
Repo: Adeptus-Dominus/ChapterMaster PR: 424
File: scripts/scr_flavor/scr_flavor.gml:34-36
Timestamp: 2025-03-09T02:33:43.867Z
Learning: EttyKitty prefers to keep PRs focused on their stated goals and scope, and may decline to implement otherwise valid suggestions if they're not directly related to the PR's primary objective.
Learnt from: EttyKitty
Repo: Adeptus-Dominus/ChapterMaster PR: 579
File: objects/obj_enunit/Alarm_0.gml:200-202
Timestamp: 2025-03-11T01:38:19.874Z
Learning: EttyKitty welcomes easy, committable suggestions that improve documentation of code chunks, variables with strange names, and functions. Their codebase is generally lacking documentation, but they prioritize human-readable code above documentation.
Learnt from: EttyKitty
Repo: Adeptus-Dominus/ChapterMaster PR: 878
File: sprites/spr_weapon_phobos_bolt_pistol/spr_weapon_phobos_bolt_pistol.yy:26-44
Timestamp: 2025-06-16T17:08:08.239Z
Learning: EttyKitty prefers automated solutions over manual cleanup for .yy file formatting and is open to automated tools for GameMaker Studio .yy file cleanup.
Learnt from: EttyKitty
Repo: Adeptus-Dominus/ChapterMaster PR: 938
File: scripts/scr_complex_colour_kit/scr_complex_colour_kit.gml:478-478
Timestamp: 2025-07-21T17:03:28.251Z
Learning: EttyKitty acknowledges when PRs contain scope creep and agrees that changes should be focused on the stated PR objectives, reinforcing their preference for keeping PRs narrowly scoped to their primary purpose.
📚 Learning: 2025-04-13T00:13:36.573Z
Learnt from: VanWeapon
Repo: Adeptus-Dominus/ChapterMaster PR: 724
File: scripts/scr_load/scr_load.gml:92-94
Timestamp: 2025-04-13T00:13:36.573Z
Learning: The `SpecialistPointHandler` class initializes its properties including `forge_queue` in its constructor, making explicit initialization in conditional statements unnecessary when the properties are missing from save data.
Applied to files:
scripts/scr_specialist_point_handler/scr_specialist_point_handler.gml
📚 Learning: 2025-04-05T20:58:21.881Z
Learnt from: EttyKitty
Repo: Adeptus-Dominus/ChapterMaster PR: 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.
Applied to files:
scripts/scr_apothecary_ground/scr_apothecary_ground.gml
🔇 Additional comments (2)
scripts/scr_apothecary_ground/scr_apothecary_ground.gml (1)
201-267: The slot pipeline is clearer now.Tech-Priest, the separation of pool generation, spending, and stat recording makes this passage markedly easier to audit.
scripts/scr_specialist_point_handler/scr_specialist_point_handler.gml (1)
65-67: The extraction point is well placed.Tech-Priest,
process_specialist_points()now runs after the specialist ledgers andpoint_breakdownare reset, so the mixin receives clean state.
There was a problem hiding this comment.
Actionable comments posted: 3
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Pro
Run ID: 096b46dd-5bab-43bd-ab2d-6e27c24a5638
📒 Files selected for processing (1)
scripts/scr_apothecary_ground/scr_apothecary_ground.gml
📜 Review details
🧰 Additional context used
📓 Path-based instructions (2)
**/*.gml
⚙️ CodeRabbit configuration file
- All code should comply with the 2026 GML documentation.
Files:
scripts/scr_apothecary_ground/scr_apothecary_ground.gml
**/*.*
⚙️ CodeRabbit configuration file
**/*.*: - Code Philosophy: Prioritize explicit intent and maintainability over brevity. If a
solution is "clever" but mentally taxing, request a refactor to a clearer approach.
Variable Naming: Use clear, descriptive names; avoid over-abbreviation.
Abstraction: Apply the "Rule of Three"; suggest abstraction only when similar logic is
repeated three or more times to avoid premature complexity.Subjective Choices: For naming or architecture, ask guiding questions to prompt developer
reflection and provide at least two alternative perspectives.TODOs: If a TODO comment is added, ask the user if a GitHub issue should be created. If a
TODO comment is deleted, remind the user to check the status of that specific issue.
Files:
scripts/scr_apothecary_ground/scr_apothecary_ground.gml
🧠 Learnings (5)
📓 Common learnings
Learnt from: EttyKitty
Repo: Adeptus-Dominus/ChapterMaster PR: 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
Repo: Adeptus-Dominus/ChapterMaster PR: 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
Repo: Adeptus-Dominus/ChapterMaster PR: 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
Repo: Adeptus-Dominus/ChapterMaster PR: 424
File: scripts/scr_flavor/scr_flavor.gml:34-36
Timestamp: 2025-03-09T02:33:43.867Z
Learning: EttyKitty prefers to keep PRs focused on their stated goals and scope, and may decline to implement otherwise valid suggestions if they're not directly related to the PR's primary objective.
Learnt from: EttyKitty
Repo: Adeptus-Dominus/ChapterMaster PR: 579
File: objects/obj_enunit/Alarm_0.gml:200-202
Timestamp: 2025-03-11T01:38:19.874Z
Learning: EttyKitty welcomes easy, committable suggestions that improve documentation of code chunks, variables with strange names, and functions. Their codebase is generally lacking documentation, but they prioritize human-readable code above documentation.
Learnt from: EttyKitty
Repo: Adeptus-Dominus/ChapterMaster PR: 878
File: sprites/spr_weapon_phobos_bolt_pistol/spr_weapon_phobos_bolt_pistol.yy:26-44
Timestamp: 2025-06-16T17:08:08.239Z
Learning: EttyKitty prefers automated solutions over manual cleanup for .yy file formatting and is open to automated tools for GameMaker Studio .yy file cleanup.
Learnt from: EttyKitty
Repo: Adeptus-Dominus/ChapterMaster PR: 938
File: scripts/scr_complex_colour_kit/scr_complex_colour_kit.gml:478-478
Timestamp: 2025-07-21T17:03:28.251Z
Learning: EttyKitty acknowledges when PRs contain scope creep and agrees that changes should be focused on the stated PR objectives, reinforcing their preference for keeping PRs narrowly scoped to their primary purpose.
📚 Learning: 2025-06-16T17:12:13.045Z
Learnt from: EttyKitty
Repo: Adeptus-Dominus/ChapterMaster 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.
Applied to files:
scripts/scr_apothecary_ground/scr_apothecary_ground.gml
📚 Learning: 2025-03-07T01:56:40.971Z
Learnt from: MCPO-Spartan-117
Repo: Adeptus-Dominus/ChapterMaster PR: 562
File: scripts/scr_marine_struct/scr_marine_struct.gml:0-0
Timestamp: 2025-03-07T01:56:40.971Z
Learning: Marines' ages should be incremented at the year transition in obj_turn_end/Alarm_1.gml rather than calculated dynamically based on the current year and recruitment date. This ensures proper aging without retroactive application.
Applied to files:
scripts/scr_apothecary_ground/scr_apothecary_ground.gml
📚 Learning: 2025-04-05T20:54:45.813Z
Learnt from: EttyKitty
Repo: Adeptus-Dominus/ChapterMaster PR: 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.
Applied to files:
scripts/scr_apothecary_ground/scr_apothecary_ground.gml
📚 Learning: 2025-03-01T11:06:25.427Z
Learnt from: MCPO-Spartan-117
Repo: Adeptus-Dominus/ChapterMaster 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.
Applied to files:
scripts/scr_apothecary_ground/scr_apothecary_ground.gml
🔇 Additional comments (1)
scripts/scr_apothecary_ground/scr_apothecary_ground.gml (1)
176-180:⚠️ Potential issue | 🔴 CriticalThe rite of invocation has failed, Tech-Priest. The symbol
chapter_spread()doth not exist.Across all the GML scrolls, thy codebase declareth only
calculate_full_chapter_spread()upon Line 19, yetprocess_specialist_points()upon Line 177 doth call untochapter_spread(). No function bearing that name resideth anywhere within thy archives. When this ceremony is enacted, the machine spirit shall wail in error—the invocation will fault, leaving naught but ruin in its wake.Ensure the function name aligneth: either rename the definition, or correct the call site.
⛔ Skipped due to learnings
Learnt from: MCPO-Spartan-117 Repo: Adeptus-Dominus/ChapterMaster 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.Learnt from: EttyKitty Repo: Adeptus-Dominus/ChapterMaster 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.Learnt from: EttyKitty Repo: Adeptus-Dominus/ChapterMaster 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.
There was a problem hiding this comment.
♻️ Duplicate comments (3)
scripts/scr_apothecary_ground/scr_apothecary_ground.gml (3)
189-197:⚠️ Potential issue | 🟠 MajorMove the gene-seed shutdown above the spread filter.
Tech-Priest, a recruiting world that already has tracked units never enters this branch, so
obj_controller.recruitingcan remain active after gene-seed is exhausted.Proposed correction
with (obj_star) { var _in_spread = variable_struct_exists(_unit_spread, name); + + if (_gene_seed_empty && system_feature_bool(self.p_feature, eP_FEATURES.RECRUITING_WORLD)) { + obj_controller.recruiting = 0; + scr_alert("red", "recruiting", "The Chapter has run out of gene-seed!", 0, 0); + _gene_seed_empty = false; + } if (!_in_spread) { - if (_gene_seed_empty && system_feature_bool(self.p_feature, eP_FEATURES.RECRUITING_WORLD)) { - obj_controller.recruiting = 0; - scr_alert("red", "recruiting", "The Chapter has run out of gene-seed!", 0, 0); - _gene_seed_empty = false; - } continue; } array_push(_unit_spread[$ name], self); }
292-300:⚠️ Potential issue | 🟠 MajorSimulate vehicle HP during preview repairs.
Tech-Priest, when
turn_endis false,obj_ini.veh_hpnever advances, so a vehicle at 99 HP can still reserve all ten repair ticks.Proposed correction
var _repairs_done = 0; - while (_repairs_done < VEHICLE_REPAIR_LIMIT && obj_ini.veh_hp[_co][_idx] < 100 && _pool.forge >= VEHICLE_REPAIR_SMALL) { + var _simulated_hp = obj_ini.veh_hp[_co][_idx]; + while (_repairs_done < VEHICLE_REPAIR_LIMIT && _simulated_hp < 100 && _pool.forge >= VEHICLE_REPAIR_SMALL) { if (turn_end) { obj_ini.veh_hp[_co][_idx]++; } + _simulated_hp++; forge_veh_maintenance.repairs += VEHICLE_REPAIR_SMALL; _pool.forge -= VEHICLE_REPAIR_SMALL; _repairs_done++; }
326-330:⚠️ Potential issue | 🟠 MajorDo not grant bionics without paying the specialist pools.
Tech-Priest, this loop can install implants with zero
_pool.healand zero_pool.forge, which alters recovery mechanics inside a refactor and makes fallen marines recover without specialist cost.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Pro
Run ID: 16436201-20c2-4580-8ab6-82732ddf5dd9
📒 Files selected for processing (1)
scripts/scr_apothecary_ground/scr_apothecary_ground.gml
📜 Review details
🧰 Additional context used
📓 Path-based instructions (2)
**/*.gml
⚙️ CodeRabbit configuration file
- All code should comply with the 2026 GML documentation.
Files:
scripts/scr_apothecary_ground/scr_apothecary_ground.gml
**/*.*
⚙️ CodeRabbit configuration file
**/*.*: - Code Philosophy: Prioritize explicit intent and maintainability over brevity. If a
solution is "clever" but mentally taxing, request a refactor to a clearer approach.
Variable Naming: Use clear, descriptive names; avoid over-abbreviation.
Abstraction: Apply the "Rule of Three"; suggest abstraction only when similar logic is
repeated three or more times to avoid premature complexity.Subjective Choices: For naming or architecture, ask guiding questions to prompt developer
reflection and provide at least two alternative perspectives.TODOs: If a TODO comment is added, ask the user if a GitHub issue should be created. If a
TODO comment is deleted, remind the user to check the status of that specific issue.
Files:
scripts/scr_apothecary_ground/scr_apothecary_ground.gml
🧠 Learnings (5)
📓 Common learnings
Learnt from: EttyKitty
Repo: Adeptus-Dominus/ChapterMaster PR: 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
Repo: Adeptus-Dominus/ChapterMaster PR: 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
Repo: Adeptus-Dominus/ChapterMaster PR: 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
Repo: Adeptus-Dominus/ChapterMaster PR: 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
Repo: Adeptus-Dominus/ChapterMaster PR: 424
File: scripts/scr_flavor/scr_flavor.gml:34-36
Timestamp: 2025-03-09T02:33:43.867Z
Learning: EttyKitty prefers to keep PRs focused on their stated goals and scope, and may decline to implement otherwise valid suggestions if they're not directly related to the PR's primary objective.
Learnt from: EttyKitty
Repo: Adeptus-Dominus/ChapterMaster PR: 579
File: objects/obj_enunit/Alarm_0.gml:200-202
Timestamp: 2025-03-11T01:38:19.874Z
Learning: EttyKitty welcomes easy, committable suggestions that improve documentation of code chunks, variables with strange names, and functions. Their codebase is generally lacking documentation, but they prioritize human-readable code above documentation.
Learnt from: EttyKitty
Repo: Adeptus-Dominus/ChapterMaster PR: 878
File: sprites/spr_weapon_phobos_bolt_pistol/spr_weapon_phobos_bolt_pistol.yy:26-44
Timestamp: 2025-06-16T17:08:08.239Z
Learning: EttyKitty prefers automated solutions over manual cleanup for .yy file formatting and is open to automated tools for GameMaker Studio .yy file cleanup.
Learnt from: EttyKitty
Repo: Adeptus-Dominus/ChapterMaster PR: 938
File: scripts/scr_complex_colour_kit/scr_complex_colour_kit.gml:478-478
Timestamp: 2025-07-21T17:03:28.251Z
Learning: EttyKitty acknowledges when PRs contain scope creep and agrees that changes should be focused on the stated PR objectives, reinforcing their preference for keeping PRs narrowly scoped to their primary purpose.
📚 Learning: 2025-04-05T20:58:21.881Z
Learnt from: EttyKitty
Repo: Adeptus-Dominus/ChapterMaster PR: 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.
Applied to files:
scripts/scr_apothecary_ground/scr_apothecary_ground.gml
📚 Learning: 2025-03-07T01:56:40.971Z
Learnt from: MCPO-Spartan-117
Repo: Adeptus-Dominus/ChapterMaster PR: 562
File: scripts/scr_marine_struct/scr_marine_struct.gml:0-0
Timestamp: 2025-03-07T01:56:40.971Z
Learning: Marines' ages should be incremented at the year transition in obj_turn_end/Alarm_1.gml rather than calculated dynamically based on the current year and recruitment date. This ensures proper aging without retroactive application.
Applied to files:
scripts/scr_apothecary_ground/scr_apothecary_ground.gml
📚 Learning: 2025-04-05T20:54:45.813Z
Learnt from: EttyKitty
Repo: Adeptus-Dominus/ChapterMaster PR: 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.
Applied to files:
scripts/scr_apothecary_ground/scr_apothecary_ground.gml
📚 Learning: 2025-03-01T11:06:25.427Z
Learnt from: MCPO-Spartan-117
Repo: Adeptus-Dominus/ChapterMaster 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.
Applied to files:
scripts/scr_apothecary_ground/scr_apothecary_ground.gml
🔇 Additional comments (1)
scripts/scr_apothecary_ground/scr_apothecary_ground.gml (1)
248-257: The per-slot_statscontract is sound.Tech-Priest, these
heal_points,heal_points_use,forge_points, andforge_points_usefields still satisfy the readers inscripts/scr_PlanetData/scr_PlanetData.gmlandscripts/scr_unit_quick_find_pane/scr_unit_quick_find_pane.gml.
There was a problem hiding this comment.
Actionable comments posted: 3
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Pro
Run ID: 6263ebc7-325f-44be-a704-bd8f7bd1308c
📒 Files selected for processing (5)
objects/obj_controller/Create_0.gmlobjects/obj_controller/Draw_64.gmlscripts/scr_apothecary_ground/scr_apothecary_ground.gmlscripts/scr_specialist_point_handler/scr_specialist_point_handler.gmlscripts/scr_ui_popup/scr_ui_popup.gml
📜 Review details
🧰 Additional context used
📓 Path-based instructions (2)
**/*.gml
⚙️ CodeRabbit configuration file
- All code should comply with the 2026 GML documentation.
Files:
objects/obj_controller/Draw_64.gmlscripts/scr_ui_popup/scr_ui_popup.gmlobjects/obj_controller/Create_0.gmlscripts/scr_apothecary_ground/scr_apothecary_ground.gmlscripts/scr_specialist_point_handler/scr_specialist_point_handler.gml
**/*.*
⚙️ CodeRabbit configuration file
**/*.*: - Code Philosophy: Prioritize explicit intent and maintainability over brevity. If a
solution is "clever" but mentally taxing, request a refactor to a clearer approach.
Variable Naming: Use clear, descriptive names; avoid over-abbreviation.
Abstraction: Apply the "Rule of Three"; suggest abstraction only when similar logic is
repeated three or more times to avoid premature complexity.Subjective Choices: For naming or architecture, ask guiding questions to prompt developer
reflection and provide at least two alternative perspectives.TODOs: If a TODO comment is added, ask the user if a GitHub issue should be created. If a
TODO comment is deleted, remind the user to check the status of that specific issue.
Files:
objects/obj_controller/Draw_64.gmlscripts/scr_ui_popup/scr_ui_popup.gmlobjects/obj_controller/Create_0.gmlscripts/scr_apothecary_ground/scr_apothecary_ground.gmlscripts/scr_specialist_point_handler/scr_specialist_point_handler.gml
🧠 Learnings (7)
📓 Common learnings
Learnt from: EttyKitty
Repo: Adeptus-Dominus/ChapterMaster PR: 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
Repo: Adeptus-Dominus/ChapterMaster PR: 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
Repo: Adeptus-Dominus/ChapterMaster PR: 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
Repo: Adeptus-Dominus/ChapterMaster PR: 424
File: scripts/scr_flavor/scr_flavor.gml:34-36
Timestamp: 2025-03-09T02:33:43.867Z
Learning: EttyKitty prefers to keep PRs focused on their stated goals and scope, and may decline to implement otherwise valid suggestions if they're not directly related to the PR's primary objective.
Learnt from: EttyKitty
Repo: Adeptus-Dominus/ChapterMaster PR: 579
File: objects/obj_enunit/Alarm_0.gml:200-202
Timestamp: 2025-03-11T01:38:19.874Z
Learning: EttyKitty welcomes easy, committable suggestions that improve documentation of code chunks, variables with strange names, and functions. Their codebase is generally lacking documentation, but they prioritize human-readable code above documentation.
Learnt from: EttyKitty
Repo: Adeptus-Dominus/ChapterMaster PR: 878
File: sprites/spr_weapon_phobos_bolt_pistol/spr_weapon_phobos_bolt_pistol.yy:26-44
Timestamp: 2025-06-16T17:08:08.239Z
Learning: EttyKitty prefers automated solutions over manual cleanup for .yy file formatting and is open to automated tools for GameMaker Studio .yy file cleanup.
Learnt from: EttyKitty
Repo: Adeptus-Dominus/ChapterMaster PR: 938
File: scripts/scr_complex_colour_kit/scr_complex_colour_kit.gml:478-478
Timestamp: 2025-07-21T17:03:28.251Z
Learning: EttyKitty acknowledges when PRs contain scope creep and agrees that changes should be focused on the stated PR objectives, reinforcing their preference for keeping PRs narrowly scoped to their primary purpose.
📚 Learning: 2025-06-16T17:12:13.045Z
Learnt from: EttyKitty
Repo: Adeptus-Dominus/ChapterMaster 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.
Applied to files:
objects/obj_controller/Draw_64.gml
📚 Learning: 2025-04-05T20:58:21.881Z
Learnt from: EttyKitty
Repo: Adeptus-Dominus/ChapterMaster PR: 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.
Applied to files:
scripts/scr_apothecary_ground/scr_apothecary_ground.gml
📚 Learning: 2025-03-07T01:56:40.971Z
Learnt from: MCPO-Spartan-117
Repo: Adeptus-Dominus/ChapterMaster PR: 562
File: scripts/scr_marine_struct/scr_marine_struct.gml:0-0
Timestamp: 2025-03-07T01:56:40.971Z
Learning: Marines' ages should be incremented at the year transition in obj_turn_end/Alarm_1.gml rather than calculated dynamically based on the current year and recruitment date. This ensures proper aging without retroactive application.
Applied to files:
scripts/scr_apothecary_ground/scr_apothecary_ground.gml
📚 Learning: 2025-04-05T20:54:45.813Z
Learnt from: EttyKitty
Repo: Adeptus-Dominus/ChapterMaster PR: 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.
Applied to files:
scripts/scr_apothecary_ground/scr_apothecary_ground.gml
📚 Learning: 2025-03-01T11:06:25.427Z
Learnt from: MCPO-Spartan-117
Repo: Adeptus-Dominus/ChapterMaster 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.
Applied to files:
scripts/scr_apothecary_ground/scr_apothecary_ground.gml
📚 Learning: 2025-04-13T00:13:36.573Z
Learnt from: VanWeapon
Repo: Adeptus-Dominus/ChapterMaster PR: 724
File: scripts/scr_load/scr_load.gml:92-94
Timestamp: 2025-04-13T00:13:36.573Z
Learning: The `SpecialistPointHandler` class initializes its properties including `forge_queue` in its constructor, making explicit initialization in conditional statements unnecessary when the properties are missing from save data.
Applied to files:
scripts/scr_specialist_point_handler/scr_specialist_point_handler.gml
🔇 Additional comments (13)
scripts/scr_ui_popup/scr_ui_popup.gml (1)
766-769: The machine spirit approves this tooltip integration, Tech-Priest.The dynamic binding to
obj_controller.apothecary_stringaligns with the ritual established inscr_specialist_point_handler.gml. The##delimiter shall be transmuted into newlines by the sacredstring_hash_to_newline()function during rendering, as decreed inobj_tooltip/Draw_75.gml.objects/obj_controller/Create_0.gml (1)
538-539: The initialization rite is properly consecrated, Tech-Priest.The
apothecary_stringvariable joins its kinforge_stringin the controller's memory banks, awaiting population by the specialist point handler. The placement adheres to established patterns.scripts/scr_apothecary_ground/scr_apothecary_ground.gml (7)
1-8: The sacred constants are well-defined, Tech-Priest.These macros establish clear boundaries for the machine's maintenance rituals. The values provide readable configuration for vehicle repair limits and heal costs.
44-44: The equipment burden ledger has been properly restructured, Tech-Priest.Accumulating maintenance burden into
forge_equipment_maintenancerather thantech_points_usedresolves the prior double-entry corruption. The forge tally shall now reflect true consumption.
188-202: The gene-seed shutdown rite has been elevated, Tech-Priest.The recruiting world deactivation now executes independently of unit spread presence, ensuring the Chapter's seed vaults are properly monitored across all systems. The prior defect wherein populated systems evaded this check has been purged.
292-304: The vehicle repair simulation has been properly consecrated, Tech-Priest.The introduction of
_simulated_hpensures that preview calculations no longer corrupt the forge pool reserves. The repair loop terminates correctly regardless ofturn_endstate.
250-259: The data covenant with consuming rituals is preserved, Tech-Priest.The
_statsstructure maintains field names consistent with expectations inscr_PlanetData.gmlandscr_unit_quick_find_pane.gml. The breakdown recording shall function without disruption.
348-357: The instance recording helper employs proper error containment, Tech-Priest.The defensive try/catch wrapping and error logging shall aid diagnosis when instance parsing fails. The assigned
_statsstructure aligns with thesingle_loc_point_data()format expected by fleet instances.
329-333: The bionic application loop functions as the Omnissiah intended, Tech-Priest.The
_application_successguard correctly terminates the rite shouldadd_bionics()fail. Bionics consumption proceeds from the chapter's armoury inventory—not the apothecary's heal and forge pools. This represents no mechanical alteration: the function defaults to_from_armoury = true, consuming stored bionic parts during application. The system operates as designed, with two separate resource streams managing healing rites and bionic augmentation respectively.scripts/scr_specialist_point_handler/scr_specialist_point_handler.gml (4)
28-55: The pre-computation ritual has been properly restructured, Tech-Priest.The delegation to
process_specialist_points()consolidates the specialist logic. The initialization offorge_equipment_maintenanceenables proper tracking of equipment burden separately from vehicle maintenance.
63-65: The forge master assignment is now properly bounded, Tech-Priest.The additional validation
forge_master < total_techsprevents array corruption should the index exceed the techs array length. A prudent safeguard against the machine spirit's wrath.
67-76: The apothecary string assembly is well-structured, Tech-Priest.The sectioned format (
AP Production,AP Consumption,Total AP) provides clear breakdown for the tooltip display. The accounting correctly deducts used points before displaying totals.
152-154: The controller string bindings complete the data conduit, Tech-Priest.Both
forge_stringandapothecary_stringare now channelled toobj_controller, enabling the tooltip system inscr_ui_popup.gmlto access the computed values. The machine spirit's data flows are properly connected.
No description provided.