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

Add SpawnActorWarhead #21364

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

Add SpawnActorWarhead #21364

wants to merge 2 commits into from

Conversation

PunkPun
Copy link
Member

@PunkPun PunkPun commented Mar 9, 2024

Third party modders have been requesting this warhead for a very long time. I'm sure it will find uses in base mods as well

@PunkPun PunkPun force-pushed the spawn-actor branch 3 times, most recently from 66c234e to 2700412 Compare March 10, 2024 09:38
@Porenutak
Copy link
Contributor

Porenutak commented Mar 11, 2024

Another test case:
01warheadtest.zip

functionality looks OK

@PunkPun PunkPun force-pushed the spawn-actor branch 2 times, most recently from 3ad7433 to fe0e163 Compare March 11, 2024 11:39
public readonly string[] Actors;

[Desc("The cell range to try placing the actors within.")]
public readonly int Range = 10;
Copy link
Contributor

Choose a reason for hiding this comment

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

How is the location determined? First available cell in circle radius or also semi random?

Won't it look bad if it's always the same pattern and order of units?

Copy link
Member Author

Choose a reason for hiding this comment

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

The idea is to allow the actor to spawn even if centre tiles are occupied. I don't believe we have a function that would randomise with ranked range

td.Add(new FacingInit(args.ImpactOrientation.Yaw));

var cachedTarget = target;
world.AddFrameEndTask(w =>
Copy link
Contributor

Choose a reason for hiding this comment

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

Trivial. But could potentially become a long running frame end task.

Copy link
Member Author

Choose a reason for hiding this comment

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

is that a problem? Everything that handles adding or removing actors to world needs to be in frame end task to avoid a System.InvalidOperationException

Copy link
Contributor

Choose a reason for hiding this comment

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

I was thinking of #20903.

But yeah, it may not matter if it's executed as one or multiple tasks, needs to get executed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants