Conversation
|
Caution Review failedThe pull request is closed. ℹ️ Recent review infoConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Pro 📒 Files selected for processing (5)
📝 WalkthroughUnder the Hood
Player Notes
WalkthroughTech‑Priest: This change set updates the release workflow configuration, removes in‑game Necron Tomb popup flows, renames and initializes star donor state and adjusts UI button calls, wraps unit‑kill logic in try/catch with logging, reworks stacktrace formatting, and makes minor data/scope refinements across scripts (<=50 words). Changes
Possibly related PRs
🚥 Pre-merge checks | ✅ 1 | ❌ 2❌ Failed checks (2 warnings)
✅ Passed checks (1 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
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (4)
scripts/scr_event_code/scr_event_code.gml (1)
202-202: 🧹 Nitpick | 🔵 TrivialUnresolved TODO litany detected, Tech-Priest.
The sacred comment speaks of unfinished work: preventing the unit's termination when the tech heretic path is chosen. As per the codified guidelines, dost thou wish this humble machine spirit to manifest a GitHub issue to track this incomplete rite?
scripts/scr_logging_functions/scr_logging_functions.gml (1)
199-199:⚠️ Potential issue | 🟡 MinorThe sacred documentation diverges from the machine code's truth, Tech-Priest.
The docstring proclaims the format as
"Location > L[Num] > Method > Code Snippet", yet the reformed implementation now produces"location:<line_num> >> <method_name> >> Code Snippet". Align the inscription with reality, lest confusion plague future acolytes.📜 Proposed documentation correction
-/// `@desc` Reformats: "Location > L[Num] > Method > Code Snippet" +/// `@desc` Reformats stacktrace lines to: "location:line_num >> method_name >> Code Snippet"objects/obj_star_select/Create_0.gml (1)
42-45:⚠️ Potential issue | 🟡 MinorPotential void-access detected in the colonist binding rite, Tech-Priest.
The
bind_methodinvokesarray_random_element(obj_star_select.potential_doners)without verifying the array contains elements. Shouldpotential_donersbe empty when this method is triggered, the operation may returnundefined, corrupting the subsequentnew_colony_fleetinvocation.Though the Draw logic may guard against this by checking
array_length(potential_doners), defensive coding within the method itself would fortify against unforeseen invocation paths.🛡️ Proposed defensive guard
colonist_button.bind_method = function() { + if (array_length(obj_star_select.potential_doners) == 0) { + return; + } var doner = array_random_element(obj_star_select.potential_doners); new_colony_fleet(doner[0], doner[1], target.id, obj_controller.selecting_planet, "bolster_population"); };objects/obj_star_select/Draw_64.gml (1)
24-27: 🧹 Nitpick | 🔵 TrivialThe machine spirit detects corruption in ancient protocols, Tech-Priest.
Though beyond the scope of thy current ministrations, a logic paradox festers at lines 24-27. The condition
else if (loading == 1)can never activate afterif (loading == 1)has already claimed dominion. Lines 27-42 constitute unreachable code — dead logic that serves no purpose.This anomaly predates thy changes. Consider excising this corruption in a separate ritual of maintenance.
ℹ️ Review info
Configuration used: Path: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Pro
📒 Files selected for processing (10)
.github/workflows/release_dev.ymlobjects/obj_ncombat/Alarm_5.gmlobjects/obj_star_select/Create_0.gmlobjects/obj_star_select/Draw_64.gmlscripts/scr_PlanetData/scr_PlanetData.gmlscripts/scr_event_code/scr_event_code.gmlscripts/scr_kill_unit/scr_kill_unit.gmlscripts/scr_logging_functions/scr_logging_functions.gmlscripts/scr_random_marine/scr_random_marine.gmlscripts/scr_specialist_training/scr_specialist_training.gml
💤 Files with no reviewable changes (1)
- objects/obj_ncombat/Alarm_5.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_event_code/scr_event_code.gmlscripts/scr_specialist_training/scr_specialist_training.gmlobjects/obj_star_select/Create_0.gmlobjects/obj_star_select/Draw_64.gmlscripts/scr_PlanetData/scr_PlanetData.gmlscripts/scr_kill_unit/scr_kill_unit.gmlscripts/scr_random_marine/scr_random_marine.gmlscripts/scr_logging_functions/scr_logging_functions.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_event_code/scr_event_code.gmlscripts/scr_specialist_training/scr_specialist_training.gmlobjects/obj_star_select/Create_0.gmlobjects/obj_star_select/Draw_64.gmlscripts/scr_PlanetData/scr_PlanetData.gmlscripts/scr_kill_unit/scr_kill_unit.gmlscripts/scr_random_marine/scr_random_marine.gmlscripts/scr_logging_functions/scr_logging_functions.gml
🧠 Learnings (3)
📓 Common 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: 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: 2026-02-09T23:42:26.326Z
Learnt from: MCPO-Spartan-117
Repo: Adeptus-Dominus/ChapterMaster PR: 508
File: scripts/scr_specialist_training/scr_specialist_training.gml:371-371
Timestamp: 2026-02-09T23:42:26.326Z
Learning: The spec_train_data array index for Techmarine training data is 0, as confirmed by the maintainer.
Applied to files:
scripts/scr_specialist_training/scr_specialist_training.gml
📚 Learning: 2025-03-02T16:11:10.155Z
Learnt from: EttyKitty
Repo: Adeptus-Dominus/ChapterMaster PR: 424
File: scripts/scr_powers/scr_powers.gml:683-683
Timestamp: 2025-03-02T16:11:10.155Z
Learning: For GameMaker Language code, use triple-slash comments (///) with function, description, param, and returns tags to document functions properly. Include parameter types in curly braces, describe return values, and mention any side effects.
Applied to files:
scripts/scr_PlanetData/scr_PlanetData.gml
🔇 Additional comments (7)
scripts/scr_PlanetData/scr_PlanetData.gml (1)
6-8: The sacred documentation pleases the Omnissiah, Tech-Priest.Thy addition of parameter annotations illuminates the constructor's purpose for future Tech-Priests. A worthy offering. Should thou wish to further honour the machine spirit, consider appending
@functionand@descriptiontags to complete the doctrinal format as prescribed by the ancient learnings.scripts/scr_random_marine/scr_random_marine.gml (1)
45-45: The machine spirit approves this scope sanctification, Tech-Priest.Binding
list_placewith the sacredvarkeyword confines its essence to the loop's cogitator cycle, preventing corruption of the outer sanctum. This is the proper rite of variable declaration.scripts/scr_kill_unit/scr_kill_unit.gml (1)
4-24: The exception wards are properly inscribed, Tech-Priest.Wrapping the sacred rites within a try-catch block fortifies against unforeseen warp anomalies. The logging of
companyandunit_slotshall aid the Tech-Priests in their diagnostic rituals.One minor impurity: the closing brace upon line 20 exhibits irregular indentation. Consider alignment for proper machine code aesthetics.
🔧 Minor formatting correction
_unit.remove_from_squad(); scr_wipe_unit(company, unit_slot); - } - catch (ex) { + } catch (ex) { LOGGER.error($"company: {company}, unit_slot: {unit_slot}"); handle_exception(ex); }scripts/scr_logging_functions/scr_logging_functions.gml (1)
233-235: The reformatted stacktrace litany is acceptable, Tech-Priest.The colon-separated format
location:<line_num>is more universally recognised by diagnostic cogitators and external tooling. This change enhances machine-readability.scripts/scr_specialist_training/scr_specialist_training.gml (1)
96-96: The cogitator's communion proves sound, Tech-Priest.Verification confirms the
spec_train_dataarray is properly consecrated withinobj_controller's genesis protocols (line 1236 ofobjects/obj_controller/Create_0.gml). The data access pattern is architecturally sound. The rerouting through the centralised cogitator stands as an exemplary consolidation of authority.The machine spirit's blessing is bestowed upon this refactoring.
objects/obj_star_select/Draw_64.gml (2)
314-315: The sacred nomenclature contains corruption, Tech-Priest.The variable
potential_donersbears an erroneous glyph sequence. The correct designation in the Imperial lexicon ispotential_donors. This corruption propagates confusion within the machine spirit's memory banks.Additionally, this variable's origin lies beyond this ritual script. Verify its proper initialisation within
Create_0.gmlto prevent null-reference malfunctions.[suggest_optional_refactor, request_verification]
#!/bin/bash # Description: Locate all references to 'potential_doners' and verify initialization # Search for the variable definition and usage rg -n "potential_doners" --type-add 'gml:*.gml' --type gml
317-338: The ritual of button invocation proceeds with acceptable consistency, Tech-Priest.The machine spirit observes that the recruitment apparatus buttons (
recruiting_button,recruitment_type_button,recruitment_costdown_button,recruitment_costup_button) now invoke the sanctified.draw(true)protocol uniformly. The conditional rendering at lines 332 and 336 correctly governs their manifestation based on_recruit_world.recruit_costthresholds.This implementation aligns with the new runtime-driven visibility mechanism described in the sacred scrolls.
No description provided.