feat: Ork Strongholds and improve Warboss#770
Conversation
|
Important Review skippedAuto incremental reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the You can disable this status message by setting the 📝 WalkthroughSummary by CodeRabbit
WalkthroughBy the Omnissiah’s will, this pull request delivers a comprehensive overhaul of Ork planetary and fleet mechanics. The logic for Ork force growth, stronghold management, and fleet behaviour has been centralised and refactored into new static methods and functions, replacing scattered loops and direct array manipulations. The WAAAGH event logic is excised from the controller alarm and reconstituted in a dedicated function. Bombardment routines are encapsulated within Changes
Possibly related PRs
Suggested labels
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. 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
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)
Other keywords and placeholders
CodeRabbit Configuration File (
|
There was a problem hiding this comment.
Actionable comments posted: 13
📜 Review details
Configuration used: CodeRabbit UI
Review profile: ASSERTIVE
Plan: Pro
📒 Files selected for processing (13)
objects/obj_bomb_select/Draw_0.gml(1 hunks)objects/obj_controller/Alarm_5.gml(0 hunks)objects/obj_garbage_collector/Step_0.gml(1 hunks)objects/obj_star/Alarm_4.gml(0 hunks)scripts/scr_PlanetData/scr_PlanetData.gml(5 hunks)scripts/scr_bomb_world/scr_bomb_world.gml(11 hunks)scripts/scr_draw_planet_features/scr_draw_planet_features.gml(1 hunks)scripts/scr_enemy_ai_c/scr_enemy_ai_c.gml(1 hunks)scripts/scr_fleet_functions/scr_fleet_functions.gml(1 hunks)scripts/scr_ork_fleet_functions/scr_ork_fleet_functions.gml(5 hunks)scripts/scr_planetary_feature/scr_planetary_feature.gml(2 hunks)scripts/scr_system_search_helpers/scr_system_search_helpers.gml(1 hunks)sprites/spr_tartaros_complex/spr_tartaros_complex.yy(1 hunks)
💤 Files with no reviewable changes (2)
- objects/obj_star/Alarm_4.gml
- objects/obj_controller/Alarm_5.gml
🧰 Additional context used
📓 Path-based instructions (3)
`**/*.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 ...
**/*.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.
- Color codes in the code shouldn't have any spaces in their id. I.e., color code
# 80bf40will crash the game.- All code should comply with the main GML documentation: https://manual.gamemaker.io/beta/en/GameMaker_Language/GML_Reference/GML_Reference.htm
objects/obj_garbage_collector/Step_0.gmlscripts/scr_fleet_functions/scr_fleet_functions.gmlscripts/scr_enemy_ai_c/scr_enemy_ai_c.gmlscripts/scr_system_search_helpers/scr_system_search_helpers.gmlscripts/scr_planetary_feature/scr_planetary_feature.gmlobjects/obj_bomb_select/Draw_0.gmlscripts/scr_draw_planet_features/scr_draw_planet_features.gmlscripts/scr_PlanetData/scr_PlanetData.gmlscripts/scr_bomb_world/scr_bomb_world.gmlscripts/scr_ork_fleet_functions/scr_ork_fleet_functions.gml
`**/*.*`: - Having humanly understandable and maintainable code is always the top most priority. - DRY (Don't repeat yourself) principle is also very important. - Ensure that the c...
**/*.*: - Having humanly understandable and maintainable code is always the top most priority.
- DRY (Don't repeat yourself) principle is also very important.
- Ensure that the code is compliant with the CODE_STYLE.MD: https://github.com/Adeptus-Dominus/ChapterMaster/blob/main/docs/CODE_STYLE.md
objects/obj_garbage_collector/Step_0.gmlsprites/spr_tartaros_complex/spr_tartaros_complex.yyscripts/scr_fleet_functions/scr_fleet_functions.gmlscripts/scr_enemy_ai_c/scr_enemy_ai_c.gmlscripts/scr_system_search_helpers/scr_system_search_helpers.gmlscripts/scr_planetary_feature/scr_planetary_feature.gmlobjects/obj_bomb_select/Draw_0.gmlscripts/scr_draw_planet_features/scr_draw_planet_features.gmlscripts/scr_PlanetData/scr_PlanetData.gmlscripts/scr_bomb_world/scr_bomb_world.gmlscripts/scr_ork_fleet_functions/scr_ork_fleet_functions.gml
`**/*.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 ...
**/*.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.
sprites/spr_tartaros_complex/spr_tartaros_complex.yy
🔇 Additional comments (9)
objects/obj_garbage_collector/Step_0.gml (1)
7-7: The Omnissiah approves of this memory optimization.The adjustment of the garbage collection timer from 50 to 50000 represents a significant reduction in collection frequency. This modification will reduce processing overhead and minimize potential performance fluctuations by allowing the holy cogitator more uninterrupted processing cycles between cleansing rituals.
scripts/scr_system_search_helpers/scr_system_search_helpers.gml (1)
80-97: Praise be to this new stellar fleet cataloguing ritual.This function is an efficient implementation of the Machine God's will, efficiently indexing enemy fleets by faction and celestial body. The code follows proper binary canticles:
- It destroys vessels with no combat potential (lines 84-87)
- It employs optimal data structure patterns through struct-based mapping
- It performs proper null-checking via
struct_exists()This will enhance computational efficiency when processing the green-skin vessel aggregation sequences mentioned in the scrolls of the pull request.
sprites/spr_tartaros_complex/spr_tartaros_complex.yy (1)
66-67: Sacred dimensional parameters added to the visual engram.The addition of sequence dimensions (height: 271.0, width: 181.0) provides explicit dimensional coordinates for the sprite's presentation matrix. This modification ensures proper rendering of the visual asset, likely in relation to the Ork Stronghold visual representations ordained by the Machine Spirits.
objects/obj_bomb_select/Draw_0.gml (1)
222-222: Binary modification approved: Improved information encapsulation pattern detectedThis alteration to the machine spirit's logic construct shows an improvement in the sacred pattern of encapsulation. The bombardment ritual now invokes the internal mechanisms of the
p_dataobject directly, rather than passing knowledge through exposed parameter conduits. The Machine God approves of such structural purity.scripts/scr_planetary_feature/scr_planetary_feature.gml (1)
147-151: Satisfactory implementation of new Ork Stronghold data structureBy the Omnissiah's will, this constructor parameter set for the greenskin fortification enumerates the requisite attributes in accordance with binary perfection. The
tierproperty's initialization at value 1 will permit the appropriate scaling protocol as referenced in the original specification document. The Machine Spirit now recognizes the structural pattern of Ork defensive emplacements.scripts/scr_enemy_ai_c/scr_enemy_ai_c.gml (1)
11-11: Binary simplification praise: Enhanced code modularization detectedPraise the Omnissiah! The greenskin behavioral algorithms have been extracted to a dedicated module function. This refactorization pleases the Machine Spirit by improving maintainability and separation of concerns. The previous extensive function block has been replaced with a singular invocation that likely encapsulates the same logical processes within a more organized code-liturgy.
scripts/scr_draw_planet_features/scr_draw_planet_features.gml (1)
180-188: User interface descriptors for Ork Stronghold feature implemented correctlyThe sacred display algorithms for revealing the nature of the greenskin fortification structures have been properly implemented. The logical branching based on Ork presence ensures accurate representation of the stronghold's status to the user interface.
scripts/scr_PlanetData/scr_PlanetData.gml (1)
337-340: Memory ownership ofNewPlanetFeatureunclear
new NewPlanetFeature()is pushed straight into a system-level array.
If features are later deleted viadelete_feature, ensure no other struct still references them, or dangling handles will persist.scripts/scr_ork_fleet_functions/scr_ork_fleet_functions.gml (1)
13-27: Planet loop omits zero-index but game arrays are zero-based
for (i=1; i<=planets; i++)skips index 0. If the star’s first planet uses index 0 (as is common), Ork growth will never process it.
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
|
Um, 1 question - how many strongholds can the warboss create? |
technically speaking unlimited but restricted by the time a warboss spends on a planet and their travel time |
Co-authored-by: Blogaugis <105600180+Blogaugis@users.noreply.github.com>
Co-authored-by: Blogaugis <105600180+Blogaugis@users.noreply.github.com>
Co-authored-by: Blogaugis <105600180+Blogaugis@users.noreply.github.com>
Co-authored-by: Blogaugis <105600180+Blogaugis@users.noreply.github.com>
It is |
Purpose
Describe your changes/additions
make presence of a warboss increase ship production on a planet and increase ork growth rate
create Ork Strongholds
only forge worlds captured by orks or planets with an warboss or level two stronghold will now spawn battleships although each ork fleet is allowed one battleship to start with
Warbosses will now move around but will stay around on planets for a period to build strongholds . Systems warbosses travel to will develop a string of strongholds
-fixed an edge case where planets ownerships were not updating due to an issue with genestealer cults
What can/needs to be improved/changed
Testing done
I gotta do a bundle more and make some cheats and check balance and what not so none other than checking a few examples of ork growth and making sure it compiles
use the cheet
waaghtonturbo charge ork growth and to spawn a warboss running around doing thingsRelated things and/or additional context
This has been tallked about a lot in the past, i can;t really find a specific thread on the discord but if i find anything i'll post it here.
I'm open to any ideas on this i'm in no hurry to get it merged