beyond-all-reason / beyond-all-reason/RecoilEngine
Add some way to make a unit unbuildable
- Dominant language
- C++
- Stars
- 679
- Forks
- 290
- Avg merge
- 3d 2h
- Merged PRs (30d)
- 40
Description
There's unit def `canBeAssisted` tag. If you set it to false, and the unit has a parent constructor, then it can be nanolathed only by that constructor. Otherwise (including when spawned without a parent constructor) it can be nanolathed by any constructor.
The request is to make a stricter version which cannot be nanolathed by constructors at all (including by its parent), only Lua would be able to change its build progress.
The specific use case is that ZK drones are built very fast via gadget, and have canBeAssisted=false to prevents random constructors from trying to nanolathe them (wasting time and resources), but since a commander can spawn drones too and is the parent, he can still nanolathe his own drones, so a commander with drones on fight-move will randomly stop to build.
Contributor guide
Research direction
Start by tracing how the canBeAssisted unit tag is handled, then follow the nanolathe and build-progress logic for parent constructors and gadget-spawned units. Done means a stricter unit option prevents all constructors, including the parent constructor, from nanolathing the unit while Lua can still change its build progress.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp, lua
- Domain
- game-dev
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100