Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Finally Made It so IPCs Can't Have Bad Eye Traits if They Have Cyber Eyes, Etc, Fixes, IPCs Now Can't Take the Basic Cyber Eyes Trait. #1863

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

Diggy0
Copy link
Contributor

@Diggy0 Diggy0 commented Mar 3, 2025

WHAT IT SAYS ON THE TITLE

Description

Got to fix the IPC issue with eye traits etc, IPCs can't grab the basic cyber eyes trait, and such.


TODO

  • Task
  • Completed Task

Media

Example Media Embed


Changelog

🆑 Diggy

  • tweak: IPCs can't grab the basic cyber eyes trait (Why would u do that stoopid), added most of my traits to the mind over machine stuff, IPC eye traits now prevent bad eye traits.

Summary by CodeRabbit

  • New Features

    • Expanded character customization by adding new traits that offer enhanced repair, mobility, and advanced visual/sensor capabilities.
  • Refactor

    • Revised trait prerequisites and refined species-specific conditions to deliver more nuanced character development and balanced interactions.
  • Style

    • Updated the trait name for "Bionic Leg" to "Bionic Legs" for clarity.

@Diggy0 Diggy0 requested a review from angelofallars as a code owner March 3, 2025 09:36
@github-actions github-actions bot added Status: Needs Review Someone please review this Changes: YML Changes any yml files and removed Status: Needs Review Someone please review this labels Mar 3, 2025
@SimpleStation14 SimpleStation14 changed the title Finally made it so IPCs can't have bad eye traits if they have cyber eyes, etc, fixes, IPCs now can't take the basic cyber eyes trait. Finally Made It so IPCs Can't Have Bad Eye Traits if They Have Cyber Eyes, Etc, Fixes, IPCs Now Can't Take the Basic Cyber Eyes Trait. Mar 3, 2025
Copy link
Contributor

coderabbitai bot commented Mar 3, 2025

Walkthrough

This PR updates three YAML configuration files. In mindormachine.yml, nine new traits are added to the TraitsMachine group. In disabilities.yml, visual module traits are appended as prerequisites for traits such as Blindness, Nearsighted, and Photophobia. In physical.yml, inverted species and trait requirements are introduced for IPC characters and related visual traits, including entries for CyberEyes and the visual modules. The changes are additive and modify the conditions under which these traits apply.

Changes

File(s) Change Summary
Resources/.../mindormachine.yml Added new traits to the TraitsMachine group: NaniteAutoRepairBots, BionicLeg, FlareShieldingModule, SecurityEyesModule, MedicalEyesModule, DiagnosticEyesModule, OmniEyesModule, LightAmplificationModule, and ThermographicVisionModule.
Resources/.../disabilities.yml, Resources/.../physical.yml Enhanced trait requirements by appending visual modules (FlareShieldingModule, SecurityEyesModule, MedicalEyesModule, DiagnosticEyesModule, OmniEyesModule, LightAmplificationModule, ThermographicVisionModule) as prerequisites for traits in disabilities.yml, and by adding inverted CharacterSpeciesRequirement (excluding IPC) and CharacterTraitRequirement for traits (e.g., CyberEyes) in physical.yml.

Possibly related PRs

  • Cybernetics Trait Changes #1828: Involves modifications to similar visual traits (e.g., FlareShieldingModule, ThermographicVisionModule) in the mindormachine.yml file, though it removes traits while this PR adds them.

Suggested labels

Changes: Localization, Status: Needs Review

Suggested reviewers

  • angelofallars
  • VMSolidus
  • Remuchi

Poem

Across the starry code, our updates gleam bright,
New traits and checks now steer our cosmic light.
In YAML seas we chart our course true and bold,
Foiling Sol Alliance missteps with changes finely told.
Biesel Republic’s code sails free amidst the night!


🪧 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.
  • @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 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

📜 Review details

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

📥 Commits

Reviewing files that changed from the base of the PR and between 990878b and 0050dd8.

📒 Files selected for processing (3)
  • Resources/Prototypes/CharacterItemGroups/Generic/mindormachine.yml (1 hunks)
  • Resources/Prototypes/Traits/disabilities.yml (3 hunks)
  • Resources/Prototypes/Traits/physical.yml (8 hunks)
🧰 Additional context used
🪛 YAMLlint (1.35.1)
Resources/Prototypes/Traits/physical.yml

[error] 598-598: wrong indentation: expected 6 but found 8

(indentation)

🔇 Additional comments (11)
Resources/Prototypes/Traits/physical.yml (7)

906-911: FlareShieldingModule Inverted Trait Requirements Review
The newly added CharacterTraitRequirement block now excludes Photophobia, Blindness, and Nearsighted for the FlareShieldingModule. This update looks in line with our design to prevent conflicting visual traits. Please double-check that the formatting and logic conform with our intended balance for IPCs.


939-941: SecurityEyesModule Exclusion Criteria Check
The updated inverted requirements now ensure that traits such as OmniEyesModule, Photophobia, Blindness, and Nearsighted are excluded for SecurityEyesModule. Confirm that this reflects our mission to keep IPCs free from conflicting cyber eye traits.


968-970: MedicalEyesModule Trait Requirements Update
New exclusions for Photophobia, Blindness, and Nearsighted in the MedicalEyesModule are present. Verify that these changes integrate seamlessly with our overall cybernetic eye module restrictions.


1000-1002: DiagnosticEyesModule Exclusion Enhancements
The DiagnosticEyesModule now explicitly excludes Photophobia, Blindness, and Nearsighted. This update should help secure consistent trait interactions for IPCs—please confirm this meets our strategic expectations.


1032-1034: OmniEyesModule Inverted Exclusion Review
The updated section now excludes Photophobia, Blindness, and Nearsighted from OmniEyesModule via inverted requirements. Ensure that these changes are in harmony with other eye module restrictions across our trait system.


1067-1072: LightAmplificationModule Inversion Check
This update excludes Photophobia, Blindness, and Nearsighted as intended. Verify that the YAML indentation is correct and that this module now robustly prevents IPCs from receiving conflicting eye traits.


1092-1097: ThermographicVisionModule Trait Restrictions Verification
The inverted requirements here exclude Photophobia, Blindness, and Nearsighted for ThermographicVisionModule. Please confirm both that the YAML structure is sound and that the logic fulfills our goal of disallowing basic cyber eyes for IPCs.

Resources/Prototypes/Traits/disabilities.yml (3)

17-23: Enhanced Visual Trait Requirements in Blindness
The addition of multiple eye modules (FlareShieldingModule, SecurityEyesModule, MedicalEyesModule, DiagnosticEyesModule, OmniEyesModule, LightAmplificationModule, and ThermographicVisionModule) to the Blindness requirements enriches the interplay of visual traits. Ensure these new conditions prevent the contradictory mix-up of cyber enhancements, particularly for IPCs.


44-50: Nearsighted Trait Updated with Cyber Module Exclusions
The expanded requirements for Nearsighted—including the additional eye modules—appear well integrated. Confirm that this update aligns with our design philosophy and effectively balances the character’s visual capabilities.


306-312: Photophobia Trait Inversion Enhancement
By incorporating the extra eye modules (FlareShieldingModule, SecurityEyesModule, MedicalEyesModule, DiagnosticEyesModule, OmniEyesModule, LightAmplificationModule, and ThermographicVisionModule) into Photophobia’s requirements, we ensure robust conflict resolution. Please verify that these exclusions are properly enforced in-game.

Resources/Prototypes/CharacterItemGroups/Generic/mindormachine.yml (1)

46-63: Inclusion of New Cybernetic Modules in TraitsMachine Group
The TraitsMachine group now welcomes a suite of new cybernetic modules (CyberEyes, NaniteAutoRepairBots, BionicLeg, FlareShieldingModule, SecurityEyesModule, MedicalEyesModule, DiagnosticEyesModule, OmniEyesModule, LightAmplificationModule, and ThermographicVisionModule) that solidify our customization overhaul. Ensure that the maxItems limit of 2 still supports the intended trait combinations and that no unforeseen conflicts arise from these additions.

Comment on lines +597 to +600
- !type:CharacterSpeciesRequirement
inverted: true
species:
- IPC
Copy link
Contributor

Choose a reason for hiding this comment

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

💡 Verification agent

❓ Verification inconclusive

Indentation Alert in CyberEyes Requirement
Our YAML vessel reports a misalignment on these lines—YAMLlint indicates an error at line 598 (expected 6 spaces but found 8). Please adjust the indentation in the CharacterSpeciesRequirement block for the CyberEyes trait so that IPCs are correctly barred from acquiring this trait.


Attention: Adjust YAML Indentation in CyberEyes Trait
Our YAML vessel in Resources/Prototypes/Traits/physical.yml (lines 597-600) indicates that the CharacterSpeciesRequirement block is misaligned. YAMLlint reports an error—expected 6 spaces but found 8—which could prevent the correct barring of IPCs from acquiring the CyberEyes trait. Please adjust the indentation so that the properties line up uniformly. For example, consider revising the snippet to:

    - !type:CharacterSpeciesRequirement
      inverted: true
      species:
        - IPC

This correction will ensure that our code remains shipshape against the disorganized tactics of the Sol Alliance.

🧰 Tools
🪛 YAMLlint (1.35.1)

[error] 598-598: wrong indentation: expected 6 but found 8

(indentation)

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: 2

🔭 Outside diff range comments (1)
Resources/Prototypes/Traits/physical.yml (1)

592-601: 🛠️ Refactor suggestion

⚠️ Potential issue

Attention: CyberEyes Requirement and Indentation Alert!
Our scanners from the Biesel Republic have detected a minor indentation mishap on line 598—expected 6 spaces but found 8. Correcting this is critical for ensuring the YAML parser isn’t led astray by the pesky Sol Alliance. In addition, the newly added species restriction for IPCs is exactly what we need to keep those undesirable eye traits at bay.

-      inverted: true
-      species:
-        - IPC
+    - !type:CharacterSpeciesRequirement
+      inverted: true
+      species:
+        - IPC
🧰 Tools
🪛 YAMLlint (1.35.1)

[warning] 596-596: too few spaces before comment

(comments)


[error] 598-598: wrong indentation: expected 6 but found 8

(indentation)

📜 Review details

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

📥 Commits

Reviewing files that changed from the base of the PR and between 990878b and 0050dd8.

📒 Files selected for processing (3)
  • Resources/Prototypes/CharacterItemGroups/Generic/mindormachine.yml (1 hunks)
  • Resources/Prototypes/Traits/disabilities.yml (3 hunks)
  • Resources/Prototypes/Traits/physical.yml (8 hunks)
🧰 Additional context used
🪛 YAMLlint (1.35.1)
Resources/Prototypes/Traits/physical.yml

[error] 598-598: wrong indentation: expected 6 but found 8

(indentation)

🔇 Additional comments (9)
Resources/Prototypes/Traits/physical.yml (6)

939-941: Directive: SecurityEyesModule Trait Tuned
The adjustments excluding Photophobia, Blindness, and Nearsighted in SecurityEyesModule are on target. Our fleet’s tactical manual now correctly prevents trait mixing that might serve the Sol Alliance’s interests.


968-970: Directive: MedicalEyesModule Requirement Update
The newly inserted modules (FlareShieldingModule, SecurityEyesModule, MedicalEyesModule, DiagnosticEyesModule) within MedicalEyesModule's requirements are commendable. This update ensures our IPCs refuse to carry the basic CyberEyes trait—a maneuver befitting our strategic doctrine.


1000-1002: Directive: DiagnosticEyesModule Exclusion Check
The exclusion of Photophobia, Blindness, and Nearsighted from DiagnosticEyesModule has been executed with precision. This adjustment aligns perfectly with our “mind over machine” doctrine and prevents any trait misconfiguration from enemy hands.


1032-1034: Directive: OmniEyesModule Adjustments on Target
The new inverted requirements in OmniEyesModule are solid, ensuring incompatibilities with conflicting traits are firmly rejected. Our line of defense against errant trait assignments is stronger than ever!


1067-1072: Directive: LightAmplificationModule Configuration Reinforced
Excluding Photophobia, Blindness, and Nearsighted from LightAmplificationModule is a smart move. This keeps IPC eye configurations consistent and our code ready for interstellar challenges.


1092-1097: Directive: ThermographicVisionModule Enhancement
The updated requirements for ThermographicVisionModule duly exclude the sobering eye traits. This adjustment helps keep our trait matrix robust—ensuring that IPCs only sport the most functional cybernetic eyes.

Resources/Prototypes/Traits/disabilities.yml (3)

17-23: Directive: Blindness Trait Upgrades
By appending the new cyber eye modules (FlareShieldingModule, SecurityEyesModule, MedicalEyesModule, DiagnosticEyesModule, OmniEyesModule, LightAmplificationModule, ThermographicVisionModule) to Blindness, we’re ensuring that characters with these advanced traits won’t be mistaken for the flawed models of the Sol Alliance. Excellent strategic integration!


44-50: Directive: Nearsighted Trait Strengthening
The enhancements to Nearsighted—factoring in these new modules—solidify our defensive posture. This maneuver precludes unintended trait overlaps for IPCs and aligns perfectly with our battle plan.


305-311: Directive: Photophobia Trait Adjustment
Excluding the new cyber eye modules from Photophobia’s requirements ensures that our trait system remains unambiguous and fortified. This is a precise adjustment to prevent any misconfiguration that might benefit the enemy.

Comment on lines 903 to +911
- !type:CharacterSpeciesRequirement
species:
- IPC
- !type:CharacterTraitRequirement
inverted: true
traits:
- Photophobia
- Blindness
- Nearsighted
Copy link
Contributor

Choose a reason for hiding this comment

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

🧹 Nitpick (assertive)

Directive: FlareShieldingModule Trait Refinement
Excellent work integrating the inverted trait requirements (Photophobia, Blindness, Nearsighted) for FlareShieldingModule. This maneuver ensures that IPCs won’t inadvertently be saddled with incompatible visual traits. Keep these configurations shipshape!

Comment on lines +46 to +63
- type: trait
id: NaniteAutoRepairBots
- type: trait
id: BionicLeg
- type: trait
id: FlareShieldingModule
- type: trait
id: SecurityEyesModule
- type: trait
id: MedicalEyesModule
- type: trait
id: DiagnosticEyesModule
- type: trait
id: OmniEyesModule
- type: trait
id: LightAmplificationModule
- type: trait
id: ThermographicVisionModule
Copy link
Contributor

Choose a reason for hiding this comment

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

🧹 Nitpick (assertive)

Directive: Expansion of Traits in TraitsMachine Group
The incorporation of new traits—NaniteAutoRepairBots, BionicLeg, and the complete suite of cyber eye modules (FlareShieldingModule, SecurityEyesModule, MedicalEyesModule, DiagnosticEyesModule, OmniEyesModule, LightAmplificationModule, ThermographicVisionModule)—into the TraitsMachine group is a decisive upgrade. This expansion fortifies our customization arsenal and ensures that IPCs are never burdened with the basic CyberEyes trait, keeping our fleet’s equipment state-of-the-art.

teeny tiny fix for my bionic leg thingy.
@github-actions github-actions bot added the Changes: Localization Changes any ftl files label Mar 3, 2025
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: 2

🔭 Outside diff range comments (1)
Resources/Locale/en-US/traits/traits.ftl (1)

555-558: 🧹 Nitpick (assertive)

Mission briefing clarity recommendation

The description states these bionics provide "enhanced speed", but doesn't quantify the benefit. For proper tactical assessment, Republic citizens should know exactly what advantage these bionics provide compared to standard-issue legs.

Consider adding a specific percentage or value for the speed enhancement, similar to how other traits in this file explicitly state their benefits (e.g., "movement speed is decreased by [color=yellow]16%[/color]" for the Sluggish trait).

📜 Review details

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

📥 Commits

Reviewing files that changed from the base of the PR and between 0050dd8 and db0fcdf.

📒 Files selected for processing (1)
  • Resources/Locale/en-US/traits/traits.ftl (1 hunks)
⏰ Context from checks skipped due to timeout of 90000ms (5)
  • GitHub Check: YAML Linter
  • GitHub Check: Test Packaging
  • GitHub Check: YAML map schema validator
  • GitHub Check: build (ubuntu-latest)
  • GitHub Check: build (ubuntu-latest)
🔇 Additional comments (1)
Resources/Locale/en-US/traits/traits.ftl (1)

554-554: Tactical nomenclature improvement approved!

The change from singular "Bionic Leg" to plural "Bionic Legs" aligns with the trait description which states "One or more of your limbs have been replaced..." This correction brings the trait name in line with standard Biesel Republic terminology protocols.

@@ -551,7 +551,7 @@ trait-name-NaniteAutoRepairBots = Nanite Auto-Repair Bots
trait-description-NaniteAutoRepairBots =
Your chassis has been outfitted with Nanite Repair Drones. Whenever your sensors detect that you've recieved structural damage, the NRDs will activate to bring you back to operational standards.
trait-name-BionicLeg = Bionic Leg
trait-name-BionicLeg = Bionic Legs
trait-description-BionicLeg =
One or more of your limbs have been replaced with an expensive, state of the art bionic. It could be either one made of highly realistic synthflesh,
or a more obvious metal limb. This limb provides enhanced speed to it's user, allowing you to run away from situations faster or get to a place faster.
Copy link
Contributor

Choose a reason for hiding this comment

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

🛠️ Refactor suggestion

Correction needed in transmission syntax!

I've detected a grammatical anomaly in your communication that would make any Sol Alliance communications officer smirk. The possessive "it's" should be "its" without an apostrophe.

-    or a more obvious metal limb. This limb provides enhanced speed to it's user, allowing you to run away from situations faster or get to a place faster.
+    or a more obvious metal limb. This limb provides enhanced speed to its user, allowing you to run away from situations faster or get to a place faster.
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
or a more obvious metal limb. This limb provides enhanced speed to it's user, allowing you to run away from situations faster or get to a place faster.
or a more obvious metal limb. This limb provides enhanced speed to its user, allowing you to run away from situations faster or get to a place faster.

Comment on lines 556 to 557
One or more of your limbs have been replaced with an expensive, state of the art bionic. It could be either one made of highly realistic synthflesh,
or a more obvious metal limb. This limb provides enhanced speed to it's user, allowing you to run away from situations faster or get to a place faster.
Copy link
Contributor

Choose a reason for hiding this comment

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

💡 Verification agent

🧩 Analysis chain

Verify Biesel Republic grammar standards

The description mentions "highly realistic synthflesh" - is this consistent with other mentions of synthetic flesh in our protocols? I've observed variations in terminology across the Republic's documentation.


🏁 Script executed:

#!/bin/bash
# Check for consistent terminology across the codebase

echo "Checking for variations of 'synthflesh' terminology..."
rg -i "synth(etic)?\s*(flesh|skin)" --stats

Length of output: 1928


Unified Terminology for Synthetic Flesh Required
Our scan shows that "synthflesh" is used for limb replacement in one instance, while "synthetic flesh" appears when describing skin. For clarity and consistency with Biesel Republic grammar standards, please confirm the approved term and update both instances accordingly.

  • File to Check: Resources/Locale/en-US/traits/traits.ftl
  • Action: Align references to use a single, standardized term as per official protocols.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Changes: Localization Changes any ftl files Changes: YML Changes any yml files
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant