-
Notifications
You must be signed in to change notification settings - Fork 39
feat: Tech Tree Expansion #1003
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
base: main
Are you sure you want to change the base?
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
WalkthroughArch-Tech-Priest, this PR manifests a substantial expansion to the Chapter's technological foundations. The archives now contain tribal, conventional, and 40k-era production research pathways, accompanied by three tech regression disadvantages. The item catalogues—weapons, equipment, and shop wares—have been vastly augmented with research-gated unlocks, whilst combat protocols now acknowledge new tool proficiencies. In total: 11 new forge fields, 3 disadvantage tiers, 100+ shop entries, and expanded weapon and gear definitions with prerequisite binding. Changes
Estimated Code Review Effort🎯 4 (Complex) | ⏱️ ~50 minutes The expansion spans heterogeneous systems (tech trees, shop unlock logic, combat mechanics, data structures) with significant conditional branching and extensive new data entries requiring verification against intended progression design, research prerequisite logic, and balance implications. Possibly Related Issues
Possibly Related PRs
Suggested Labels
Suggested Reviewers
The Machine Spirit commends thy efforts, Tech-Priest. These expansions to the knowledge-archive are noted. May thy implementations honour the Omnissiah's design principles. Pre-merge checks✅ Passed checks (3 passed)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Added Tribal era items: Weapons (4 melee, 2 ranged); 1 armour; 4 gear/mobility items. TODO: Add proper functionality to the gear (and armour) items, also add the missing research option for psionic items. TODO2: Continue adding the 2 other eras and their techs.
d59240c to
4e254b4
Compare
Medical Herbs and Primitive Tools should now function, Psionic Tech research is added. Tribalwear should be tested, I assume it may have issues recognizing as a valid armour, but this knowledge is based on my old findings and testing. Optional TODO: ask artisans for sprites.
| // Tribal research | ||
| if (research.psi[0] < 1){ | ||
| i++; | ||
| item[i] = ["research", "Rune Analysis", ["psi"]]; | ||
| item_stocked[i] = 0; | ||
| forge_cost[i] = 1000; | ||
| tooltip_overide[i] = "Even though our ancestors, or even we, claimed that 'there are no gods in the ground and in the sky. This is the Imperial Truth' long ago, there is no use denying that psionics exist. To make use of it, or guard against, we need to study how can we interact with it in the material world. Preliminary research suggests that certain signs - 'marks' - may hold clues to it. \nRequired for: Ritual Stone Knife, Psychic Accessories."; | ||
| } | ||
| //Research of 40k |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@Frost-bit-jpg , @KRdaMystic , @OH296 and @EttyKitty if you are able
I need your thoughts on this - perhaps the psi category should be librarian research? So that librarians have their own tree with it. This also makes psyker intolerant trait have much more gameplay impact (until we introduce psyker hirelings, maybe). After all, they are the main users of this research.
Another thing, I'm not sure if it is written in a 'good enough' state, or there can be better ways to write this.
P.S. @CassieCaster I hereby invite you too to review the thing that you claimed will never be a thing.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If anyone has better ideas of how to write it better than walls of if, you are welcome to suggest it.
Added Tribal era items: Weapons (4 melee, 2 ranged); 1 armour; 4 gear/mobility items. TODO: Add proper functionality to the gear (and armour) items, also add the missing research option for psionic items. TODO2: Continue adding the 2 other eras and their techs.
Medical Herbs and Primitive Tools should now function, Psionic Tech research is added. Tribalwear should be tested, I assume it may have issues recognizing as a valid armour, but this knowledge is based on my old findings and testing. Optional TODO: ask artisans for sprites.
ba24c6e to
b0a6632
Compare
|
This PR is marked as stale, because it has been open for 7 days with no activity. |
|
TODO: reroute the pull request to CMBeta. |
|
This PR is marked as stale, because it has been open for 7 days with no activity. |
…/Space-Brigade-Master into feat-TechTreeExpansion
- Added more forge research options (requires improvements); - Fixed a few potential issues with after_combat functionality; - Added items with stats to use the new research options.
- Fixes some of compile errors; Still need to fix the `obj_controller\Create_0.gml` issues.
- It compiles at least. Have to investigate crashes with `Tech Regression: Stone Age` and likely others.
- It should no longer crash on entry into armamentarium.
- The `i += 1` does not affect the amount of items bought, but rather the position in the shop screen. Will have to look into ways to purchasing several items with 1 click.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 6
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (3)
objects/obj_controller/Create_0.gml (1)
605-611: Correct “Ceremite” to “Ceramite”.The Omnissiah frowns upon inconsistent materia spells.
- armour : [["Advanced Ceramite Bonding", "Lightened Ceramite Compound","Ceremite Void Hardening"],{}], + armour : [["Advanced Ceramite Bonding", "Lightened Ceramite Compound","Ceramite Void Hardening"],{}],objects/obj_shop/Create_0.gml (1)
1192-1199: Fix master-crafted stock counting index.Current loop writes to mc_stocked[i] each iteration, discarding counts. Use mc as the index.
- mc=0; - repeat(i) { - mc += 1; - if (item[mc] != ""){ - mc_stocked[i] = scr_item_count(item[mc], "master_crafted"); - } - } + mc = 0; + repeat (i) { + mc += 1; + if (item[mc] != "") { + mc_stocked[mc] = scr_item_count(item[mc], "master_crafted"); + } + }scripts/scr_weapon/scr_weapon.gml (1)
842-857: Duplicate abbreviations verified—implement corrective designations with urgency.The machine spirits have divined thy error, Tech-Priest. The verification scans confirm five reused sacred codenames:
- Autocnn (2 instances)
- LghtClw (2 instances)
- TwnAssCnn (2 instances)
- TwnHvyBltr (2 instances)
- TwnLascnn (2 instances) ← Omitted from thy original assessment
These collisions shall corrupt thy lookup matrices and shatter thy UI glyphs. The proposed renames in the original counsel remain sound. Heed also the Twin Linked Lascannon duplicates, which share identical abbreviations but differ in form (Mount vs. Turret).
Execute the corrective diffs across all cited line ranges: 842–857, 858–879, 1411–1426, 1491–1506, 1586–1601, 1618–1633, 1811–1828, 1845–1860, 2100–2115.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: ASSERTIVE
Plan: Pro
📒 Files selected for processing (5)
objects/obj_controller/Create_0.gml(2 hunks)objects/obj_creation/Create_0.gml(1 hunks)objects/obj_shop/Create_0.gml(9 hunks)scripts/scr_after_combat/scr_after_combat.gml(2 hunks)scripts/scr_weapon/scr_weapon.gml(8 hunks)
🧰 Additional context used
📓 Path-based instructions (2)
**/*.gml
⚙️ CodeRabbit configuration file
**/*.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
Files:
objects/obj_creation/Create_0.gmlscripts/scr_after_combat/scr_after_combat.gmlobjects/obj_controller/Create_0.gmlobjects/obj_shop/Create_0.gmlscripts/scr_weapon/scr_weapon.gml
**/*.*
⚙️ CodeRabbit configuration file
**/*.*: - Having humanly understandable and maintainable code is the top most priority.
- DRY (Don't repeat yourself) principle is also very important.
- If a TODO comment is added, ask the user if you should create a GitHub issue for this TODO.
- If a TODO comment is deleted, remind the user if there is an active GitHub issue related to that comment.
Files:
objects/obj_creation/Create_0.gmlscripts/scr_after_combat/scr_after_combat.gmlobjects/obj_controller/Create_0.gmlobjects/obj_shop/Create_0.gmlscripts/scr_weapon/scr_weapon.gml
🧠 Learnings (1)
📚 Learning: 2025-03-29T10:30:25.598Z
Learnt from: EttyKitty
PR: Adeptus-Dominus/ChapterMaster#647
File: scripts/scr_en_weapon/scr_en_weapon.gml:24-928
Timestamp: 2025-03-29T10:30:25.598Z
Learning: A data-driven approach for weapon management in `scripts/scr_en_weapon/scr_en_weapon.gml` is planned for a future PR, not within the scope of PR #647.
Applied to files:
scripts/scr_weapon/scr_weapon.gml
🔇 Additional comments (3)
scripts/scr_after_combat/scr_after_combat.gml (2)
448-456: Apothecary gear bonuses integrate cleanly.The multipliers and counter updates harmonise with Narthecium handling. No fault detected. Validate balance in late-game casualty recovery.
468-474: Techmarine tool scaling looks sound.Incremental boosts for “Primitive Tools” and “Combi-Tool” fit the progression before Servo-arm/harness. No defects observed.
objects/obj_controller/Create_0.gml (1)
521-548: Psi baseline elevated to 1 — confirm downstream gates.Setting production_research.psi to [1, {}] changes initial gating. Ensure all psi checks (shop unlocks, training, script hooks) expect 1 as baseline and 2 as “force weaponry” unlock.
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Fix, suggested by coderabbit.
Fix suggested by coderabbit
|
This PR is marked as stale, because it has been open for 7 days with no activity. |
Purpose and Description
Testing done
Related things and/or additional context
#987 - Links and general task.
The #948 is supposed to make these additions more viable.
Descriptions are also partially inspired by the Cataclysm (Dark Days Ahead or Bright Nights) hitchhikers guide to the galaxy.
And, of course, the other 40k tabletop games.
Initial comment:
Added Tribal era items:
Weapons (4 melee, 2 ranged);
1 armour;
4 gear/mobility items.
TODO: Add proper functionality to the gear (and armour) items, also add the missing research option for psionic items.
TODO2: Continue adding the 2 other eras and their techs.