Skip to content

Merge development into main#1129

Merged
EttyKitty merged 6 commits intomainfrom
development
Feb 28, 2026
Merged

Merge development into main#1129
EttyKitty merged 6 commits intomainfrom
development

Conversation

@EttyKitty
Copy link
Collaborator

No description provided.

@github-actions github-actions bot added Type: CI Continuous Integration changes Size: Small labels Feb 28, 2026
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Feb 28, 2026

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 582d9a7 and f89f7fa.

📒 Files selected for processing (5)
  • .github/workflows/release_dev.yml
  • objects/obj_star_select/Create_0.gml
  • objects/obj_star_select/Draw_64.gml
  • scripts/scr_PlanetData/scr_PlanetData.gml
  • scripts/scr_event_code/scr_event_code.gml

📝 Walkthrough

Under the Hood

  • Release workflow: changelog generation switched from HYBRID to COMMIT mode; added configurationJson (templates, commit_template, ASC sort by title)
  • scr_kill_unit: wrapped body in try/catch, logs and calls handle_exception on errors
  • Logging: changed stack-trace formatting from "L<line_num>" to ":<line_num>"
  • UI (star select): refactored button update/draw calls to use dynamic parameters instead of allow_click flags; fixed variable name potential_donors and added global array initialisation
  • scr_random_marine: declared list_place as local (var) inside loop
  • scr_specialist_training: now reads _data from obj_controller.spec_train_data[specialist] instead of global spec_train_data
  • scr_event_code: added LOGGER.warning in strange_building branch for diagnostics
  • scripts/scr_PlanetData: added documentation comments for PlanetData constructor params and minor rename to potential_donors

Player Notes

  • Removed Necron Tomb popup interaction and its associated in-game prompt/flow during combat (no popup or related state changes)
  • Colonist recruitment updated: recruitment button now selects donors from a dynamic potential_donors list (behaviour/availability driven at runtime)

Walkthrough

Tech‑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

Cohort / File(s) Summary
Release workflow
​.github/workflows/release_dev.yml
Changed changelog Build step mode from HYBRID to COMMIT and added configurationJson input (templates, commit_template, sort order).
Combat encounter
objects/obj_ncombat/Alarm_5.gml
Removed the Necron Tomb popup UI and related popup/init/commented plasma‑bomb sequences; control flow no longer invokes that interactive branch.
Star selection & UI
objects/obj_star_select
objects/obj_star_select/Create_0.gml, objects/obj_star_select/Draw_64.gml
Introduced and initialise potential_donors; fixed name mismatches; button draw/update calls now pass dynamic runtime values instead of explicit allow_click flags.
Planet data & documentation
scripts/scr_PlanetData/scr_PlanetData.gml
Added doc comments to PlanetData parameters and renamed a runtime usage from potential_doners to potential_donors.
Error handling & logging
scripts/scr_kill_unit/scr_kill_unit.gml, scripts/scr_event_code/scr_event_code.gml, scripts/scr_logging_functions/scr_logging_functions.gml
Wrapped scr_kill_unit body in try/catch with error logging and handle_exception call; added a LOGGER.warning line in event_end_turn_action; reformatted clean_stacktrace_line to use location:line notation and adjusted ordering.
Minor scope and data source fixes
scripts/scr_random_marine/scr_random_marine.gml, scripts/scr_specialist_training/scr_specialist_training.gml
Made list_place local with var inside loop; changed spec_data_set to read _data from obj_controller.spec_train_data[specialist].

Possibly related PRs

🚥 Pre-merge checks | ✅ 1 | ❌ 2

❌ Failed checks (2 warnings)

Check name Status Explanation Resolution
Title check ⚠️ Warning The title does not follow the required conventional commits format: '(): ' and is overly vague. Restructure the title to follow conventional commits format with a specific type and concise summary of the changes, e.g., 'feat(build,ui): integrate changelog builder and refactor colony recruitment flow'.
Description check ⚠️ Warning No pull request description was provided; the required template sections (Purpose and Description, Testing done, Related things) are entirely absent. Provide a complete description following the template: include purpose/rationale for merging, list testing performed, and reference any related issues or context for these substantial changes.
✅ Passed checks (1 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ 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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
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: 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 | 🔵 Trivial

Unresolved 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 | 🟡 Minor

The 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 | 🟡 Minor

Potential void-access detected in the colonist binding rite, Tech-Priest.

The bind_method invokes array_random_element(obj_star_select.potential_doners) without verifying the array contains elements. Should potential_doners be empty when this method is triggered, the operation may return undefined, corrupting the subsequent new_colony_fleet invocation.

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 | 🔵 Trivial

The 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 after if (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

📥 Commits

Reviewing files that changed from the base of the PR and between 4b821c6 and 582d9a7.

📒 Files selected for processing (10)
  • .github/workflows/release_dev.yml
  • objects/obj_ncombat/Alarm_5.gml
  • objects/obj_star_select/Create_0.gml
  • objects/obj_star_select/Draw_64.gml
  • scripts/scr_PlanetData/scr_PlanetData.gml
  • scripts/scr_event_code/scr_event_code.gml
  • scripts/scr_kill_unit/scr_kill_unit.gml
  • scripts/scr_logging_functions/scr_logging_functions.gml
  • scripts/scr_random_marine/scr_random_marine.gml
  • scripts/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.gml
  • scripts/scr_specialist_training/scr_specialist_training.gml
  • objects/obj_star_select/Create_0.gml
  • objects/obj_star_select/Draw_64.gml
  • scripts/scr_PlanetData/scr_PlanetData.gml
  • scripts/scr_kill_unit/scr_kill_unit.gml
  • scripts/scr_random_marine/scr_random_marine.gml
  • scripts/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.gml
  • scripts/scr_specialist_training/scr_specialist_training.gml
  • objects/obj_star_select/Create_0.gml
  • objects/obj_star_select/Draw_64.gml
  • scripts/scr_PlanetData/scr_PlanetData.gml
  • scripts/scr_kill_unit/scr_kill_unit.gml
  • scripts/scr_random_marine/scr_random_marine.gml
  • scripts/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 @function and @description tags 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_place with the sacred var keyword 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 company and unit_slot shall 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_data array is properly consecrated within obj_controller's genesis protocols (line 1236 of objects/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_doners bears an erroneous glyph sequence. The correct designation in the Imperial lexicon is potential_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.gml to 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_cost thresholds.

This implementation aligns with the new runtime-driven visibility mechanism described in the sacred scrolls.

@EttyKitty EttyKitty merged commit 08d55e8 into main Feb 28, 2026
1 of 4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Size: Small Type: CI Continuous Integration changes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant