OpenRA / OpenRA/OpenRA

Suggestion: Allow idle checks for actors that defaults their CurrentActivity to some Activity instead of null

Open
#13,015 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Bug
Dominant language
C#
Stars
17.4k
Forks
3k
Avg merge
1d 12h
Merged PRs (30d)
14

Description

Issue:
Aircraft actors that default their CurrentActivity to FlyCircle instead of null will never pass any IsIdle() checks.
This also means that aircrafts cannot normally fire any OnIdle script trigger.

Units tested to be affected: "yak", "mig" (RA)
Suspected affected units as well (but not tested): Ora Bomber (TS)

To Reproduce:
Just try making an affected aircraft fire any Trigger.OnIdle function without using Stop(). You can use the full Lua arsenal for your attempt.

Suggestion:
Either

  • Allow IsIdle() actor checks to return true if CurrentActivity is the FlyCircle type, or
  • Allow Lua exposure of parts of the Activity class so that actor.CurrentActivity can be queried directly. That function can then be used in place of IsIdle().

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the issue with the affected "yak" or "mig" actor, attempting to fire a Lua Trigger.OnIdle function without using Stop(). Trace the IsIdle() check and the actor's CurrentActivity, including the FlyCircle and Activity types. Done means an affected aircraft can trigger OnIdle appropriately, either through IsIdle() or an exposed CurrentActivity query.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp
Domain
game-dev
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.