beyond-all-reason / beyond-all-reason/RecoilEngine

Add some way to make a unit unbuildable

Open
#2,633 0 comments 0 reactions 0 assignees View on GitHub
area: Lua API enhancement
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.