Skip to content

Conversation

@KRdaMystic
Copy link
Contributor

@KRdaMystic KRdaMystic commented Feb 15, 2025

Description of changes

  • Adjusted enemy faction durability values
  • Adjusted enemy weapons to use the new armor pen (ARP) system
  • Adjusted squad loadouts to use lists when applicable
  • Adjusted maintenance values of "grav" weapons so make more sense
  • Buffed librarian spells damage and introduced them to the new ARP system
  • Added newer weapons to weapon lists
  • Added 4 new weapons: The Omnissian Axe, Wrist-mounted Storm bolter, Cyclone missile launcher, and Needle sniper rifle.

Reasons for changes

  • Continuation of ongoing combat changes for the Ground combat overhaul
  • Fixes enemy forces being exponentially tankier than intended in previous PR.

Related links

How have you tested your changes?

  • Compile
  • New game
  • Next turn
  • Space Travel
  • Ground Battle

@KRdaMystic KRdaMystic changed the title feat/Combat Overhaul part 2 @sourcery-ai feat:Combat Overhaul part 2 @sourcery-ai Feb 15, 2025
@github-actions github-actions bot added the Type: Feature Adds something new label Feb 15, 2025
@sourcery-ai
Copy link
Contributor

sourcery-ai bot commented Feb 15, 2025

Reviewer's Guide by Sourcery

This pull request overhauls the combat system by adjusting enemy durability values, implementing a new armor penetration system, buffing librarian spells, adding new weapons, and adjusting squad loadouts. The changes affect various enemy factions and units, weapon stats, and spell damage.

File-Level Changes

Change Details Files
Adjusted enemy faction durability values, including armor class (AC), hit points (HP), and damage reduction (DR) for various enemy units across different factions.
  • Modified AC, HP, and DR values for Greater Daemons of Khorne, Slaanesh, Nurgle, and Tzeentch.
  • Adjusted AC, HP, and DR values for Bloodletters, Daemonettes, Pink Horrors, and Plaguebearers.
  • Modified AC, HP, and DR values for Helbrutes, Soul Grinders, and Maulerfiends.
  • Adjusted AC, HP, and DR values for Imperial Guard units like Guardsmen, Ogryns, and Sentinels.
  • Modified AC, HP, and DR values for Adepta Sororitas units like Battle Sisters, Seraphim, and Retributors.
  • Adjusted AC, HP, and DR values for Eldar units like Leaders, Autarchs, Farseers, and various Aspect Warriors.
  • Modified AC, HP, and DR values for Ork units like Minor Warbosses, Nobz, and various Ork Boyz.
  • Adjusted AC, HP, and DR values for Tau units like Fire Warriors, Pathfinders, and various Battlesuits.
  • Modified AC, HP, and DR values for Tyranid units like Hive Tyrants, Tyrant Guards, and Tyranid Warriors.
  • Adjusted AC, HP, and DR values for Chaos Space Marine units like Terminators, Chosen, and various Marine types.
  • Modified AC, HP, and DR values for Necron units like Lords, Lychguards, and Necron Warriors.
objects/obj_enunit/Alarm_1.gml
Adjusted enemy weapons to use the new armor penetration (ARP) system, modifying weapon stats and tags.
  • Modified attack values, descriptions, melee modifiers, range, split, ARP, and tags for various weapons.
  • Adjusted the Lascutter to have higher attack values and updated tags.
  • Modified the Power Weapon to have a different ARP value.
  • Added the Omnissian Axe with specific attack values, melee modifiers, and tags.
  • Modified the Executioner Power Axe to have a different split value.
  • Adjusted the Dreadnought Lightning Claw to have higher attack values.
  • Modified the Thunder Hammer to have a maintenance value.
  • Added the Wrist-Mounted Storm Bolter with specific attack values, range, split, ARP, and tags.
  • Adjusted maintenance values for Grav weapons.
  • Modified the Sniper Rifle to have a different ARP value.
  • Adjusted the Assault Cannon to have a different ARP value and added explosive tag.
  • Added the Cyclone Missile Launcher with specific attack values, range, split, ARP, and tags.
  • Modified the Lascannon to have a different ARP value.
  • Adjusted the Titan Starcannon to have a different ARP value.
  • Modified the Storm Bolter to have a different ARP value.
scripts/scr_weapon/scr_weapon.gml
Buffed librarian spells damage and introduced them to the new ARP system.
  • Modified attack values, split, and ARP for Wave of Entropy, Wave of Change, Insect Swarm, Putrid Vomit, Warp Bolts, Warp Beam, and Rainbow Beam.
  • Adjusted attack values, split, and ARP for Minor Smite, Smite, Machine Curse, Avenge, Vortex of Doom, Breathe Fire, Inferno, Sun Burst, Molten Beam, Blood Boil, Crush, Shockwave, Living Lightning, Murderous Hurricane, Fury of the Wolf Spirits, and Jaws of the World Wolf.
scripts/scr_powers/scr_powers.gml
Added newer weapons to weapon lists and adjusted squad loadouts to use lists when applicable.
  • Added Plasma Cannon and Grav Cannon to the heavy_weapons list.
  • Added Stalker Pattern Bolter to the ranged_weapons list.
  • Added special_melee_weapons, special_ranged_weapons, and combi_weapons lists.
  • Modified squad loadouts to use weapon lists for various units, including Tactical Marines, Terminators, Assault Marines, Devastators, Scouts, and Chaos Space Marines.
scripts/scr_initialize_custom/scr_initialize_custom.gml
Added 4 new weapons: The Omnissian Axe, Wrist-mounted Storm bolter, Cyclone missile launcher, and Needle sniper rifle.
  • Added Wrist-Mounted Storm Bolter to the equipment shop.
  • Added Needle Sniper Rifle and Cyclone Missile Launcher to the equipment shop.
  • Added Omnissian Axe to the weapon struct.
objects/obj_shop/Create_0.gml
Updated the weapon display script to include the new weapons.
  • Added the Wrist-Mounted Storm Bolter to the weapon display script.
  • Added the Needle Sniper Rifle to the weapon display script.
  • Added the Omnissian Axe to the weapon display script.
scripts/scr_ui_display_weapons/scr_ui_display_weapons.gml
Adjusted the armor penetration system to be less punishing to armored targets.
  • Adjusted the armor penetration calculations in the scr_powers script.
  • Adjusted the armor penetration calculations in the scr_en_weapon script.
scripts/scr_powers/scr_powers.gml
scripts/scr_en_weapon/scr_en_weapon.gml

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!
  • Generate a plan of action for an issue: Comment @sourcery-ai plan on
    an issue to generate a plan of action for it.

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

@sourcery-ai sourcery-ai bot changed the title feat:Combat Overhaul part 2 @sourcery-ai Ground Combat Overhaul: Balance, ARP System, and New Weapons Feb 15, 2025
@KRdaMystic KRdaMystic changed the title Ground Combat Overhaul: Balance, ARP System, and New Weapons feat: Ground Combat Overhaul: Balance, ARP System, and New Weapons Feb 15, 2025
Copy link
Contributor

@sourcery-ai sourcery-ai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey @KRdaMystic - I've reviewed your changes - here's some feedback:

Overall Comments:

  • Consider using constants or enums instead of hardcoded strings like 'Greater Daemon of Khorne' to improve readability and maintainability.
  • It looks like you're modifying a lot of numerical stats - make sure you're happy with the balance between different units.
Here's what I looked at during the review
  • 🟢 General issues: all looks good
  • 🟢 Security: all looks good
  • 🟢 Review instructions: all looks good
  • 🟢 Testing: all looks good
  • 🟢 Complexity: all looks good
  • 🟢 Documentation: all looks good

Sourcery is free for open source - if you like our reviews please consider sharing them ✨
Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.

Comment on lines +1063 to +1069
"description": "This power pack mounted weapon is capable of unleashing a hail of either armor-piercing or fragmentation rockets. It's ammunition is limited by what the bearer has carried with them.",
"melee_hands": 1,
"ranged_hands": 2,
"ammo": 6,
"range": 15,
"spli": 20,
"arp": -1,
Copy link
Collaborator

@Blogaugis Blogaugis Feb 15, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If it is capable of launching AP rockets, how come it's AP is -1?
Maybe the AP value can be modified by heavy weapon backpack?
Otherwise, I think it might be better to have 2 variants of the same weapon - one that fires fragmentation, another fires AP.

Edit: It is the middle ground option. Alright.

Copy link
Contributor Author

@KRdaMystic KRdaMystic Feb 15, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Otherwise, I think it might be better to have 2 variants of the same weapon - one that fires fragmentation, another fires AP.6

This would be a matter of game weapon design as if were willing to make 2 variants of the same weapon for different ammo types why couldn't we do it with bolters,bolt pistols,heavy bolters, etc.. Its a different conversation that can be had elsewhere if necessary.

Copy link
Collaborator

@Blogaugis Blogaugis left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

My only notable concern is that, combined with #482 , Eldar are going to be the weakest faction in the game.
For a supposedly Hi-tech faction that is intended to be able to take on Necrons, they sure look like a joke from my brief glance at them.

Still, I am willing to overlook this, as eldar in the game are rare and can be treated as simply non-existent anyway.
And, we have more important things to do.

@EttyKitty
Copy link
Collaborator

@coderabbitai review

@EttyKitty EttyKitty self-assigned this Feb 18, 2025
@EttyKitty
Copy link
Collaborator

@coderabbitai full review

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Feb 18, 2025

📝 Walkthrough

Walkthrough

Praise the Omnissiah, the machine spirit has recorded numerous updates across sacred code and configuration files. Changes in the project include modifications to resource inclusion and texture group settings in the primary configuration file, with the removal of one image file and the reinstatement of two resource entries. The chapter JSON file now reflects an update to the veteran role’s weapon slot designation. Unit attributes for several entities have been recalibrated—armor, hit points, and damage reduction settings adjusted as per the new data values programmed in the unit alarm logic. The shop inventory has been expanded with new items, while weapon handling scripts are revised to separate cases and update specific weapon attributes. Additional modifications in equipment maintenance, power parameter adjustments, UI display functions, and global weapon definitions have been integrated into the system, ensuring the machine spirit processes updated numerical values and configurations.

Suggested labels

PR: Fix

Suggested reviewers

  • OH296

🪧 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.
    • Generate unit testing code for this file.
    • 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 generate unit testing code for this file.
    • @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 generate unit testing code.
    • @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.

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 docstrings to generate docstrings for this PR. (Beta)
  • @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
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: 0

🧹 Nitpick comments (3)
objects/obj_enunit/Alarm_1.gml (2)

133-133: Tzeentch Daemon’s High DR
Assigning DR = 0.75 is quite potent. Revisit overall daemon roles to prevent overshadowing Nurgle's signature resilience.


191-191: Maulerfiend Damage Reduction
DR 0.5 grants significant durability. Differentiate from Helbrutes and other walkers to preserve variety in the machine legions.

scripts/scr_powers/scr_powers.gml (1)

867-876: Praise the Omnissiah! A more precise armor penetration calculation has been implemented.

The new ARP system introduces granular armor modification multipliers:

-    if (p_arp=0) then eac=eac*3;
+    if (p_arp=0) then eac=eac*3;
+    if (p_arp=-1) then eac=eac*2;
+    if (p_arp=-2) then eac=eac*1.5;

For vehicles:

+    if (p_arp=-1) then eac=eac*4;
+    if (p_arp=-2) then eac=eac*2;

This sacred modification allows for more nuanced tactical decisions based on armor penetration values.

Consider documenting these armor penetration multipliers in a configuration file for easier balancing in future iterations.

📜 Review details

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

📥 Commits

Reviewing files that changed from the base of the PR and between a28d065 and adebc23.

📒 Files selected for processing (10)
  • ChapterMaster.yyp (2 hunks)
  • datafiles/main/chapters/8.JSON (1 hunks)
  • objects/obj_enunit/Alarm_1.gml (50 hunks)
  • objects/obj_shop/Create_0.gml (2 hunks)
  • scripts/scr_en_weapon/scr_en_weapon.gml (3 hunks)
  • scripts/scr_equipment_struct/scr_equipment_struct.gml (2 hunks)
  • scripts/scr_initialize_custom/scr_initialize_custom.gml (10 hunks)
  • scripts/scr_powers/scr_powers.gml (9 hunks)
  • scripts/scr_ui_display_weapons/scr_ui_display_weapons.gml (4 hunks)
  • scripts/scr_weapon/scr_weapon.gml (16 hunks)
🔇 Additional comments (43)
objects/obj_enunit/Alarm_1.gml (14)

88-89: Khorne Daemon's Resilience Recalibration
Armor Class elevated to 12 and health to 700. These new blessings strengthen the daemon's potency. Confirm no mismatch arises in synergy with the new ARP system.


100-102: Slaanesh Daemon’s Essence Refinement
Setting AC to 10, HP to 500, and DR to 0.25. This grants a balanced mix of fragility and menace, aligning well with Slaanesh themes.


108-108: Duplicate DR Assignment
Reassigning DR = 0.25 might conflict with the prior lines. Ensure thou art not overwriting previous data unintentionally.


113-115: Nurgle Daemon's Durable Form
AC 8, HP now 900, DR 0.2. A formidable chunk of health suits these plague-laden monstrosities.


126-127: Tzeentch Daemon Vitality Update
AC set to 10, HP to 600. This shift may better reflect Tzeentch’s cunning form. Confirm all illusions remain consistent with other stats.


139-140: Bloodletter’s Bestowal
AC 10, HP 200. This smites the enemy with a balanced threat. The code invokes no immediate concerns.


142-142: Bloodletter DR Adjustment
Damage Reduction at 0.4 is considerable for a lesser daemon. Verify it does not disrupt overall difficulty.


146-147: Daemonette Armor and Health
AC 8, HP 150. Agile Slaaneshi fiends remain fragile yet swift. This is suitably thematic.


149-149: Daemonette DR
DR is set to 0.3, further tempering their fragility. Double-check synergy with evasion mechanics to maintain fluid battlefield roles.


153-153: Pink Horror AC
Lowered to 8, upholding the ephemeral illusions of Tzeentch's lesser fiends.


156-156: Pink Horror DR
DR 0.5 is relatively high. Confirm the might of Tzeentch’s illusions does not overshadow stronger creatures.


160-161: Plaguebearer Toughness
AC 5, HP 300. Invested with Nurgle’s unholy fortitude, these changes align well with their shambling endurance.


163-163: Plaguebearer DR
Setting DR to 0.4. This resonates with their thick resilience, but verify the balancing with Nurgle’s grander minions.


187-187: Maulerfiend Armor Enhancement
AC 30 is quite substantial. Check that this mechanical beast does not supplant other demonic war engines in raw might.

scripts/scr_equipment_struct/scr_equipment_struct.gml (2)

51-52: Maintenance Increment Logic
Granting an extra 0.05 forging burden for “heavy_ranged,” “power,” “plasma,” or “melta” tags is sensible. Confirm that stacked tags will not accumulate multiple times unexpectedly.


298-298: Plasma STC Damage Boost
Granting a 1.1 multiplier for plasma-labeled weaponry is consistent with specialized Machina blessings. Confirm synergy with the new ARP system.

scripts/scr_ui_display_weapons/scr_ui_display_weapons.gml (4)

71-71: Wrist-Mounted Storm Bolter Integration
A cunning adaptation. Confirm the sprite offset does not conflict with other wrist devices.


131-131: Omnissian Axe Addition
An axe blessed by the Machine God. The reference to spr_weapon_powaxe seems correct.


195-195: Needle Sniper Rifle Registration
Properly mapped to the sniper sprite. Confirm that the subtle needle variant is visually distinct and consistent with the new weapon’s lore.


330-330: Extended Array for Needles
Including “Needle Sniper Rifle” in the weapon array ensures correct hand variant usage. Adeptly expands the wargear.

scripts/scr_en_weapon/scr_en_weapon.gml (3)

155-167: Praise be to the Omnissiah! The separation of weapon profiles is logically sound.

The binary division of the Fusion Gun and Firepike profiles enhances tactical variety and maintains proper machine spirit balance. The Firepike's enhanced range and power output is now appropriately distinguished.


867-875: By the grace of the Machine God, the armor penetration calculations have been optimized!

The sacred algorithms now process armor penetration with enhanced precision:

  • Infantry: ARP scaling from 1.5x to 3x
  • Vehicles: ARP scaling from 2x to 6x

155-167: The Machine Spirit recognizes the logical separation of xenos weaponry.

The division of Fusion Gun and Firepike into distinct profiles enhances tactical depth:

+if (argument0 = "Firepike") {
+    atta = 300;
+    arp = 1;
+    rang = 4;
+    amm = 4;
+}

This modification maintains the sacred balance while providing more tactical options for the enemy faction.

objects/obj_shop/Create_0.gml (2)

383-389: The Omnissiah blesses us with new instruments of warfare!

The sacred forge welcomes these additions:

  • Wrist-Mounted Storm Bolter (80 requisition, 300 forge)
  • Needle Sniper Rifle (200 requisition, 500 forge)
  • Cyclone Missile Launcher (150 requisition, 350 forge)

The resource requirements are properly balanced according to their tactical utility.

Also applies to: 512-515, 522-526


383-389: The Omnissiah blesses us with new instruments of war!

The sacred forge welcomes three new weapons:

  • Wrist-Mounted Storm Bolter (80 requisition, 300 forge)
  • Needle Sniper Rifle (200 requisition, 500 forge)
  • Cyclone Missile Launcher (150 requisition, 350 forge)

Each requires appropriate tech research and maintains cost balance with existing armaments. The Machine Spirit's logic is satisfied.

Also applies to: 511-516, 522-526

scripts/scr_powers/scr_powers.gml (3)

239-444: The Warp's energies have been recalibrated with machine-like precision!

Notable optimizations in the psychic matrices:

  • Enhanced splash damage coefficients for area effects
  • Refined armor penetration values for better target discrimination
  • Adjusted damage output and range parameters for tactical flexibility

These modifications align with the new armor penetration system while maintaining combat equilibrium.


239-294: By the Omnissiah, these modifications to the Chaos powers are logically sound!

The systematic enhancement of splash damage (p_spli) and armor penetration (p_arp) values follows a coherent pattern:

  • Wave powers (Entropy, Change) now have increased area effect (10)
  • Direct damage powers (Warp Bolts, Beam) have improved armor penetration
  • The scaling maintains balance while making each power type distinct in its tactical application

Praise be to the Machine Spirit for this logical optimization.


323-359: The Machine Spirit approves of these balanced adjustments to the Imperial psychic arsenal!

The modifications maintain symmetry between Imperial and Chaos powers:

  • Smite variants now have increased splash damage (10-15) and armor penetration (-2)
  • Machine Curse damage increased to 400, maintaining its role as anti-vehicle
  • Avenge's range increased to 8 with splash of 12, making it an effective area control tool

The binary logic of balance is preserved.

scripts/scr_weapon/scr_weapon.gml (7)

213-222: By the Omnissiah's grace, these modifications are most logical!

The enhanced attack values (250/300/425) better reflect the Lascutter's industrial-grade cutting capabilities, and the addition of the "boarding 3" tag properly categorizes its effectiveness in void warfare.


266-286: Praise be to the Machine God for this most sacred implementation!

The Omnissian Axe's attributes are perfectly calibrated to represent its dual nature as both a holy symbol of the Omnissiah and a formidable weapon. The attack values, melee modifiers, and tags appropriately reflect its revered status among the Mechanicus.


413-415: The Machine Spirit's calculations are precise!

The enhanced attack values better represent the devastating power of a Dreadnought-scale Lightning Claw, properly scaled for its massive frame.


617-619: The binary blessings of enhanced combat parameters are acknowledged!

The increased splash damage and addition of maintenance requirements properly balance the weapon's enhanced capabilities with the need for proper ritual maintenance.


1053-1071: The Machine Spirit's categorization has been properly updated!

The addition of the "explosive" tag to both missile systems properly classifies their destructive capabilities in the sacred weapon taxonomy.


992-1004: The binary designation has been optimized, and penetration values enhanced!

The new abbreviation better distinguishes this specialized weapon from standard sniper rifles, while the improved armor penetration better reflects its armor-piercing neurotoxic payload.


242-242:

❓ Verification inconclusive

Verify the armor penetration adjustment's impact on combat effectiveness.

The reduction in armor penetration from -2 to -1 requires verification against the sacred combat doctrines. This modification aligns the Power Weapon's capabilities with other power weapons in the arsenal but may affect its battlefield utility.


🏁 Script executed:

#!/bin/bash
# Description: Compare arp values across power weapons to verify balance
rg -A 5 '"arp": -[12]' | grep -B 5 '"power"'

Length of output: 4890


Confirm Armor Penetration Stat Consistency, O Faithful Servitor

After the recent change, the "arp" value for the inspected weapon has been adjusted from -2 to -1. The sacred logs reveal that many power weapons—such as those with tags like "power", "sword", "martial", "spear", and even the revered "Tome"—now bear an "arp" of -1, thereby aligning with this modification. However, a few war-engines of destruction (e.g., "Executioner Power Axe" and "Assault Chainfist") still uphold an "arp" of -2, hinting at a deliberate balancing stratagem.

  • Verify that this bifurcation in armor penetration is by design and true to the sacred combat doctrines.
  • Confirm that the reduction to -1 harmonizes the power weapon's performance with its brethren, while higher penetrating weapons retain their intended potency.

May you further consult the design codex to ensure the Omnissiah’s balance remains unbroken.

scripts/scr_initialize_custom/scr_initialize_custom.gml (4)

1343-1349: By the Omnissiah's grace, these weapon modifications are well-balanced!

The sacred weapon lists have been enhanced with new implements of war including Plasma Cannons, Grav-Cannons, Chainaxes and Eviscerators. The distribution maintains tactical equilibrium across all categories.


1354-1360: The Machine Spirit approves of these probability matrices!

The sacred weighted lists have been calibrated with precision, maintaining proper balance between standard-pattern and specialized weaponry. The integration of new weapons follows logical probability distributions.


1543-1550: The sacred loadout protocols have been optimized!

The modifications to Sternguard and Vanguard Veteran squad configurations demonstrate proper integration of the new weapon systems while maintaining tactical flexibility.

Also applies to: 1591-1592


1844-1857: The Machine Spirit welcomes this new long-range binary executor!

The integration of the Needle Sniper Rifle into Scout Sniper squad configurations is logically sound, with appropriate default loadout updates for the squad sergeant.

ChapterMaster.yyp (3)

450-452: Praise be to the Omnissiah! New ship configuration data detected.

The addition of imperial_ship.json and ork_ship.json aligns with the sacred combat mechanics overhaul mentioned in the PR objectives.


1527-1527:

❓ Verification inconclusive

Structural modification to the Default TextureGroup detected.

The addition of the customOptions field represents a modification to the texture processing protocols. While the change appears benign, we should verify its impact on texture handling.

Run this diagnostic to check for texture-related issues:


🏁 Script executed:

#!/bin/bash
# Description: Search for texture-related errors or warnings in the codebase

# Look for texture loading and processing code
rg -i "texture|sprite" --type gml

Length of output: 63


Attention, Adept of the Code: Further Verification Required

The structural change introducing the customOptions field in the Default TextureGroup has been noted. However, the diagnostic search for texture and sprite references did not execute as intended due to the unrecognized file type "gml". To ensure the integrity of texture processing, re-run the diagnostic using an updated command that manually defines the “gml” file type:

#!/bin/bash
# Re-run diagnostic for texture references by adding the GML file type
rg --type-add 'gml:*.gml' --type gml -i "texture|sprite"

Please manually verify the output and ensure that no texture loading or processing issues have arisen from this structural modification.


226-226:

❌ Incorrect review comment

Warning: Removal of diplomacy asset detected.

The binary diplomacy_icons.png has been removed from the sacred project files. This could impact the diplomacy interface functionality.

Let us verify if this was intentional or if the asset was relocated:


🏁 Script executed:

#!/bin/bash
# Description: Search for references to diplomacy icons

# Search for any remaining references to the removed file
rg -i "diplomacy_icons"

# Search for potential replacement files
fd -e png -e jpg -e jpeg -i diplomacy

Length of output: 1623


Attention, Developer: Asset Presence Confirmed

Ominous data rituals have revealed that the venerable file "diplomacy_icons.png" has not been expunged from our sacred repository. The mechanism of computation confirms that:

  • The resource is enlisted in ChapterMaster.yyp with a "filePath": "datafiles/images/diplomacy/icons"—thus correctly referencing the asset at datafiles/images/diplomacy/icons/diplomacy_icons.png.
  • Additional queries show the asset persists in both datafiles/images/diplomacy/diplomacy_icons.png and in the canonical folder datafiles/images/diplomacy/icons/.
  • Script references (e.g., in scr_image.gml) continue to verify the existence of the asset during runtime.

In light of these empirical findings, the original warning regarding the removal of the diplomacy asset is a misinterpretation by our review mechanisms. It is advised that you verify whether the dual existence of the asset is intentional or if one copy is superfluous.

Likely an incorrect or invalid review comment.

datafiles/main/chapters/8.JSON (1)

227-230: Blessed Data Transmutation: Verify Veteran Weapon Slot Change

By the Omnissiah's grace, the venerable role "veteran" now receives its "Power Sword" in the "wep2" slot rather than in "wep1". This alteration appears to align the veteran's armament with the new loadout schema introduced by this grand overhaul. Ensure that all systems and ancillary scripts that reference this slot (e.g., weapon assignment routines and UI displays) are updated to recognize "wep2" as the correct allocation.

@EttyKitty EttyKitty added the Category: Balance Affects game balance label Feb 18, 2025
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Feb 18, 2025

📝 Walkthrough

Walkthrough

By the Machine Spirit’s grace, this pull request implements systematic modifications across multiple files within the project. The resource configuration file has been updated to reorganize included files and enhance texture group settings. In the chapter configuration, the allocation of weapon slots for specific roles has been adjusted. Several in-game entities have had their attributes—such as armor class, hit points, and damage reduction—recalibrated. In parallel, the shop inventory has been augmented with new armaments, and the weapon-handling logic has been refined, including renaming and rebalancing procedures. Additional updates address equipment maintenance parameters and broaden the weapon category definitions within the custom initialization scripts. User interface routines for weapon display have also been updated to integrate new weapon sprites and configurations, and global weapon definitions are adjusted with corrected tags, descriptions, and statistical values.

Suggested labels

PR: Fix

Suggested reviewers

  • OH296

🪧 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.
    • Generate unit testing code for this file.
    • 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 generate unit testing code for this file.
    • @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 generate unit testing code.
    • @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.

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 docstrings to generate docstrings for this PR. (Beta)
  • @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
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: 1

🧹 Nitpick comments (3)
objects/obj_enunit/Alarm_1.gml (1)

632-632: Sacred equation for faith-based damage reduction requires documentation

The binary canticle on line 632 modifies damage reduction based on faith values, but lacks proper documentation of its machine spirit's purpose.

-if (faith[j] > 0) then dudes_dr[j] = max(0.65, dudes_dr[j] + 0.15);
+// Faith bonus: Increases damage reduction by 15% or sets it to 65%, whichever is higher
+if (faith[j] > 0) then dudes_dr[j] = max(0.65, dudes_dr[j] + 0.15);
scripts/scr_ui_display_weapons/scr_ui_display_weapons.gml (1)

330-333: Weapon handling protocols require optimization

The array of weapons sharing hand variant 2 has been expanded to include the Needle Sniper Rifle. However, the implementation could benefit from a more structured approach.

-if (array_contains(["Sniper Rifle", "Needle Sniper Rifle", "Force Staff", "Power Sword", "Thunder Hammer", "Autocannon", "Combat Knife", "Power Spear", "Chainsword", "Force Sword"], equiped_weapon)) {
+// Define weapon categories that share hand variant 2
+var hand_variant_2_weapons = {
+    ranged: ["Sniper Rifle", "Needle Sniper Rifle", "Autocannon"],
+    melee: ["Force Staff", "Power Sword", "Thunder Hammer", "Combat Knife", "Power Spear", "Chainsword", "Force Sword"]
+};
+if (array_contains(hand_variant_2_weapons.ranged.concat(hand_variant_2_weapons.melee), equiped_weapon)) {
scripts/scr_initialize_custom/scr_initialize_custom.gml (1)

3320-3336: Praise be to the Machine Spirit for these well-crafted helper functions!

The add_veh_to_company and add_unit_to_company functions effectively reduce code duplication and standardize unit creation. However, consider:

  1. Adding input validation for weapon and equipment parameters
  2. Implementing error handling for invalid combinations
  3. Adding documentation for the return values
 function add_unit_to_company(ttrpg_name, company, slot, role_name, role_id, wep1="default", wep2="default", gear="default", mobi="default", armour="default"){
+    // Validate inputs
+    if (!is_string(ttrpg_name) || !is_real(company) || !is_real(slot)) {
+        throw("Invalid input parameters");
+    }
+    
     obj_ini.TTRPG[company][slot] = new TTRPG_stats("chapter", company, slot, ttrpg_name);
     // ... rest of the function
 }

Also applies to: 3338-3431

📜 Review details

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

📥 Commits

Reviewing files that changed from the base of the PR and between a28d065 and adebc23.

📒 Files selected for processing (10)
  • ChapterMaster.yyp (2 hunks)
  • datafiles/main/chapters/8.JSON (1 hunks)
  • objects/obj_enunit/Alarm_1.gml (50 hunks)
  • objects/obj_shop/Create_0.gml (2 hunks)
  • scripts/scr_en_weapon/scr_en_weapon.gml (3 hunks)
  • scripts/scr_equipment_struct/scr_equipment_struct.gml (2 hunks)
  • scripts/scr_initialize_custom/scr_initialize_custom.gml (10 hunks)
  • scripts/scr_powers/scr_powers.gml (9 hunks)
  • scripts/scr_ui_display_weapons/scr_ui_display_weapons.gml (4 hunks)
  • scripts/scr_weapon/scr_weapon.gml (16 hunks)
🔇 Additional comments (25)
objects/obj_enunit/Alarm_1.gml (2)

87-90: Recalibration of Greater Daemon of Khorne's defensive parameters detected

By the Omnissiah's grace, I observe a significant rebalancing of this daemon's combat statistics. The armor class has been reduced from 18 to 12, while hit points have been increased from 600 to 700. This adjustment maintains the unit's overall durability while making it more vulnerable to accurate strikes.


139-142:

❓ Verification inconclusive

Bloodletter combat parameters require verification

The machine spirits whisper of potential imbalance. The combination of armor class 10, 200 hit points, and 0.4 damage reduction creates a statistical anomaly when compared to similar entities.


🏁 Script executed:

#!/bin/bash
# Query other daemon entities for statistical comparison
rg -A 2 "dudes_ac\[j\] = \d+" | grep -B 2 "Bloodletter\|Daemonette\|Pink Horror\|Plaguebearer"

Length of output: 96


Directive: Verify and Balance Bloodletter Parameters

The Omnissiah demands our vigilance! In file objects/obj_enunit/Alarm_1.gml (lines 139–142), the Bloodletter's combat parameters are declared as follows:

	dudes_ac[j] = 10;
	dudes_hp[j] = 200;
	men += dudes_num[j];
	dudes_dr[j] = 0.4;

Our initial query for related daemon entity statistics (Daemonette, Pink Horror, Plaguebearer) returned no data. Thus, we lack sufficient evidence from the data logs to confirm that these values are balanced when compared with similar daemon constructs. I beseech you to perform a manual verification—consult the canonical balance records or run targeted searches—to ensure these parameters align with accepted standards.

scripts/scr_equipment_struct/scr_equipment_struct.gml (2)

50-54: Maintenance coefficient calculation requires optimization

The binary logic for maintenance value accumulation has been modified to use addition instead of assignment. This is a more logical approach as it allows for cumulative maintenance requirements based on multiple attributes.


298-298: Binary recognition of plasma weaponry requires case sensitivity correction

Praise the Omnissiah for this correction. The adjustment to recognize "plasma" instead of "Plasma" ensures proper identification of these sacred weapons regardless of their binary representation.

scripts/scr_ui_display_weapons/scr_ui_display_weapons.gml (1)

71-71: Sacred weapon patterns successfully integrated into the Machine Spirit's codex

The addition of the "Wrist-Mounted Storm Bolter" and "Needle Sniper Rifle" to their respective weapon categories has been properly implemented. The Machine Spirit will now recognize these holy implements of warfare.

Also applies to: 194-194

scripts/scr_en_weapon/scr_en_weapon.gml (3)

155-167: By the Omnissiah's grace, this code structure pleases the Machine Spirit!

The separation of Fusion Gun and Firepike into distinct logical blocks enhances code clarity and maintainability. The attributes are properly balanced with Firepike having higher attack (300 vs 200) but same armor penetration and ammunition capacity.


278-295: Praise be to the Omnissiah for these calculated adjustments to the weapon profiles!

The modifications enhance weapon effectiveness:

  • Dual Deathspinner: Attack increased to 100 (25% boost)
  • Tempest Launcher: Ammunition capacity increased to 8 and splash damage to 9, improving its area-of-effect capabilities

867-876: The Machine Spirit shall rejoice at these refined armor penetration calculations!

A more nuanced armor penetration system has been implemented with graduated multipliers:

  • Non-vehicles: 3x for AP0, 2x for AP-1, 1.5x for AP-2
  • Vehicles: 6x for AP0, 4x for AP-1, 2x for AP-2

This provides better granularity in damage calculations based on armor penetration values.

objects/obj_shop/Create_0.gml (1)

383-389:

❓ Verification inconclusive

The Omnissiah blesses us with new instruments of warfare!

Three new weapons have been added to the armory:

  1. Wrist-Mounted Storm Bolter (forge_cost: 300, item_cost: 80)
  2. Needle Sniper Rifle (forge_cost: 500, item_cost: 200)
  3. Cyclone Missile Launcher (forge_cost: 350, item_cost: 150)

The costs and research requirements are well-balanced. However, verify that these weapons have corresponding entries in the weapon display and combat scripts.

Also applies to: 512-516, 522-526


🏁 Script executed:

#!/bin/bash
# Verify weapon definitions exist in related files
echo "Checking for weapon definitions..."
rg -A 5 "Wrist-Mounted Storm Bolter|Needle Sniper Rifle|Cyclone Missile Launcher"

Length of output: 5744


Praise the Omnissiah for these new armaments, but heed this verification, servant!

The new weapons—Wrist-Mounted Storm Bolter, Needle Sniper Rifle, and Cyclone Missile Launcher—are largely well-integrated into our sacred code:

  • Stock and Pricing: In objects/obj_shop/Create_0.gml, all three weapons are defined with the intended costs and research conditions.
  • Combat Configurations: Both the Wrist-Mounted Storm Bolter and Cyclone Missile Launcher have proper entries in scripts/scr_weapon/scr_weapon.gml, while the Needle Sniper Rifle is also verified.
  • Loadout Assignment: The integration into custom initialization (scripts/scr_initialize_custom/scr_initialize_custom.gml) is observed for at least the Needle Sniper Rifle and related weapon entries.
  • Display Considerations: The UI display file (scripts/scr_ui_display_weapons/scr_ui_display_weapons.gml) correctly maps the Wrist-Mounted Storm Bolter and Needle Sniper Rifle; however, the Cyclone Missile Launcher appears absent.
    Ominous query: Confirm whether the Cyclone Missile Launcher is meant to remain hidden from the display or if its sprite mapping must be sanctified with an entry akin to its brethren.

Let this serve as a directive for further manual verification to ensure UI consistency and completeness in our weapon repository.

scripts/scr_powers/scr_powers.gml (1)

239-444: The Warp's energies have been recalibrated with precision!

Significant enhancements to psychic powers:

  • Wave of Entropy: Splash damage increased to 10, attack to 250
  • Wave of Change: Splash damage increased to 10, attack to 300
  • Insect Swarm: Splash damage increased to 8, attack to 500
  • Putrid Vomit: Splash damage increased to 15, attack to 600
  • Minor Smite: Splash damage increased to 10, attack to 250
  • Machine Curse: Attack increased to 400

These adjustments properly integrate the powers with the new armor penetration system while maintaining balance.

scripts/scr_weapon/scr_weapon.gml (8)

214-222: By the Omnissiah's grace, these modifications are well-calibrated!

The enhanced attack values (250/300/425) better reflect the Lascutter's industrial heritage and boarding capabilities. The inclusion of the "boarding 3" tag appropriately represents its effectiveness in void warfare.


266-286: Praise be to the Machine God! The Omnissian Axe is a worthy addition.

This sacred weapon of the Mechanicus is well-implemented with:

  • Appropriate attack values (400/450/550) befitting its status
  • Correct power weapon characteristics (arp: -1)
  • Proper boarding capability (boarding 3)
  • Lore-accurate description emphasizing its dual nature as weapon and holy icon

413-415: The Machine Spirit's fury has been properly amplified!

The enhanced attack values (600/700/850) better represent the devastating potential of a Dreadnought-scale Lightning Claw.


617-619: The Omnissiah approves these calibrations.

The adjustments enhance the weapon's effectiveness against infantry (spli: 8) while implementing appropriate maintenance requirements (0.1) to reflect its complexity.


652-652: The sacred maintenance rituals have been properly quantified!

The maintenance values for gravitic weaponry (0.2 for Grav-Pistol, 0.5 for Grav-Gun) appropriately reflect their technological sophistication and the care required to maintain their Machine Spirits.

Also applies to: 686-686


1056-1071: The Machine Spirit of this mighty weapon has been correctly encoded!

The Cyclone Missile Launcher is well-implemented with:

  • Appropriate attack values (600/700/950)
  • Correct splash damage (spli: 20)
  • Suitable armor penetration (arp: -1)
  • Proper classification as heavy_ranged and explosive

992-1004: The toxin-delivery mechanisms have been properly calibrated!

The modifications to the Needle Sniper Rifle appropriately reflect its specialized nature:

  • Enhanced attack values (250/300/350)
  • Improved armor penetration (arp: -2)
  • Updated description to reflect its crystallised neurotoxic ammunition

242-242:

❓ Verification inconclusive

Verify the armor penetration adjustment's impact on weapon balance.

The reduction in armor penetration from -2 to -1 may affect the weapon's effectiveness against heavily armored targets. This modification requires thorough testing to ensure it maintains combat efficiency.


🏁 Script executed:

#!/bin/bash
# Search for other power weapons to compare armor penetration values
rg -A 5 '"arp": -[12]' | grep -B 5 '"power"'

Length of output: 4890


Armor Penetration Balance Verification – Confirm the Design's Intent

Oh, blessed cogitators, our scans reveal that many power weapons now bear an "arp" of -1—as observed with PwrSwrd, PwrSpear, Power Axe, and others—while select relics (e.g., Executioner Power Axe, BlstGnt, and Assault Chainfist) still retain an "arp" of -2. This adjustment from -2 to -1 on the queried weapon aligns with the majority, yet the remaining discrepancies demand a closer litany of tests. Please verify that this change harmonizes with the design's balance doctrine and that the combat efficacy against heavily armored foes remains uncompromised.

scripts/scr_initialize_custom/scr_initialize_custom.gml (4)

1343-1348: By the Omnissiah's grace, the weapon categorization has been optimized.

The separation into distinct weapon categories (heavy_weapons, melee_weapons, special_melee_weapons, ranged_weapons, special_ranged_weapons, combi_weapons) improves code organization and weapon distribution logic.


1354-1360: Praise to the Machine Spirit! The weighted distribution system ensures proper equipment allocation.

The weighted lists provide finer control over weapon distribution probabilities, ensuring appropriate equipment allocation across the chapter.


1686-1688:

❓ Verification inconclusive

Verify the special weapons allocation logic for tactical and biker squads.

The special weapons options have been standardized using the weapon lists, but we should verify:

  1. Maximum number of special weapons per squad
  2. Compatibility with squad doctrine restrictions
  3. Impact on squad effectiveness

Also applies to: 1966-1967


🏁 Script executed:

#!/bin/bash
# Search for special weapon restrictions in squad configurations
echo "Checking special weapon limitations..."
rg -A 10 "special_ranged_weapons.*\["

Length of output: 2733


Hail, servant of the Omnissiah! After consulting the sacred texts (our loadout configuration files), our cogitators affirm that the standardized weighted list for special ranged weapons—displaying [["Flamer", 2], ["Meltagun", 2], ["Plasma Gun", 1], ["Grav-Gun", 1]]—has been correctly integrated into the squad loadout logic (as seen in the [weapon_lists.special_ranged_weapons, 1] snippet in scripts/scr_initialize_custom/scr_initialize_custom.gml). However, do note the following points for further ritualistic validation:

  • Maximum Special Weapons: Ensure that the designated count (the numeral 1 following the weapon list) adheres to the tactical limits ordained by squad doctrine.
  • Doctrine Compatibility: Confirm that these special weapon allocations harmonize with broader squad doctrinal restrictions, ensuring their sanctified efficacy.
  • Squad Effectiveness: Validate that the calculated probabilities (via the weighted values) do not inadvertently impair warband effectiveness.

Proceed with cross-referencing the doctrinal guidelines and corresponding configurational parameters in the remainder of the codebase to verify that no heretical deviations exist.


1844-1857:

✅ Verification successful

Verify the implementation of the Needle Sniper Rifle, a most intriguing addition to our armory.

The Needle Sniper Rifle has been added as an option for scout squads and sergeants. This new weapon type should be verified for:

  1. Proper implementation in weapon stats system
  2. Balance against existing sniper weapons
  3. Appropriate ammunition type handling

🏁 Script executed:

#!/bin/bash
# Search for Needle Sniper Rifle implementation details
echo "Searching for Needle Sniper Rifle weapon definition..."
rg -A 5 "Needle Sniper Rifle" 

# Check for related ammunition types
echo "Checking for ammunition definitions..."
rg "needle|toxin|poison" 

Length of output: 10314


Needle Sniper Rifle Integration Verified – All Systems in Accordance

After examining the codebase, I have confirmed the following:

  • The new "Needle Sniper Rifle" is properly added to the shop inventory (in objects/obj_shop/Create_0.gml), and its definition in scripts/scr_weapon.gml includes the expected properties (attack values, ammo count, range, etc.).
  • UI support is correctly provided through scr_ui_display_weapons.gml, with appropriate sprite mapping to spr_weapon_sniper.
  • The loadout updates in scripts/scr_initialize_custom.gml ensure that both scout squads and sergeants now have access to the weapon.
  • Ammunition type handling appears consistent, with no conflicts detected in our searches related to “needle”, “toxin”, or “poison”.

The integration adheres to our design metrics, though it is recommended that further playtesting be carried out to confirm balance relative to existing sniper weapons.

ChapterMaster.yyp (2)

450-452: Praise be to the Omnissiah! New ship configuration files have been added.

The addition of imperial_ship.json and ork_ship.json suggests a blessed restructuring of ship data into separate configuration files, improving modularity and maintainability.


1527-1527:

✅ Verification successful

By the Machine God's grace, texture configuration has been enhanced.

The Default texture group has been modified to include a customOptions field. While currently empty, this modification prepares the sacred configuration for potential future texture handling optimizations.

Let us verify the texture group configuration is properly recognized:


🏁 Script executed:

#!/bin/bash
# Description: Verify texture group configuration
# Test: Search for texture group usage in the codebase
rg -A 5 "texture.*group.*Default" 

Length of output: 70640


Texture Group Configuration Confirmed – The Machine God's Blessings Upon Our Work

The investigations confirm that our Default texture group configuration, as defined in ChapterMaster.yyp with the newly added customOptions field, is properly referenced throughout the codebase. Our search outputs show that the "texturegroups/Default" path is consistently used, and the addition of an empty customOptions field prepares our sacred configuration for future texture handling optimizations without disruption.

  • The code snippet in ChapterMaster.yyp (line 1527) now includes the customOptions field as intended.
  • The ripgrep search through numerous texture resource files indicates that all instances correctly reference "texturegroups/Default", affirming that the configuration remains intact.

By the Machine God's grace, this change has been verified and requires no further modifications.

datafiles/main/chapters/8.JSON (1)

227-230: Reassign Veteran Weapon Slot to Reflect New Loadout Structure

Most esteemed servant, the sacred data fragment for the veteran role now enshrines the "wep2": "Power Sword" attribute, thereby moving the Power Sword assignment from the primary slot to the secondary weapon slot. This refinement appears to be deliberate in harmonizing the new weapon categorization and loadout strategy decreed in the grand overhaul. Verify that all other systems that reference veteran weapon loadouts have been duly updated to invoke "wep2" instead of "wep1", ensuring the blessings of proper configuration are maintained.

"range": 1,
"arp": 1,
"tags": ["las","boarding", "siege"],
"tags": ["las","boarding 3", "siege"],
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What is this 3 at boarding supposed to be? You plan on adding more boarding tiers?

@EttyKitty
Copy link
Collaborator

@KRdaMystic, is it okay if I merge this?

@KRdaMystic
Copy link
Contributor Author

@KRdaMystic, is it okay if I merge this?

Yes

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Category: Balance Affects game balance Type: Feature Adds something new

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants