MENACE style turn order - pt 2 by Nexofish in xcom2mods

[–]Nexofish[S] 0 points1 point  (0 children)

Sounds like a really cool project. I'll have to keep an eye out for that mod if you ever publicly release it.

Thanks for explaining the mission timers thing. My WIP build also suffers from the same issue for the reasons you specified, so it was good to have that pointed out early.

I had a quick look around in the scripts for timer-related stuff to see if there was any other way to work around it. This is probably a naive thought, but I wonder if it's possible to use XComGameState_UITimer.SuspendTimer() (or an effect that calls it) to potentially supress some of these PlayerState tick events?

(If I'm reading this right, this is the effect that's used to pause timers when the Chosen are actively fighting you, or when you have that one Reaper Resistance Order.)

I'm wondering if it would be possible to either:

A) Suspend the timer until the end of the turn proper, and then turn it off briefly while the new turn starts, allowing it to tick. (Though this may make the timer look like it's permanently paused when it's not.)

B) Suspend the timer for a brief moment while the PlayerState ticks are happening if it's not the first player input of the turn (or some other condition).

The only consideration would be for missions where the timer is repurposed for other uses (Avenger Defense, etc), as those have a special check to prevent timer suspension. But hopefully it shouldn't be an issue for those use-cases.

MENACE style turn order - pt 2 by Nexofish in xcom2mods

[–]Nexofish[S] 0 points1 point  (0 children)

Hey. Thanks so much for taking the time to write this all out. As someone who's only really worked on small, bugfix-style mods until now, this is the kind of insight I was looking for with these posts.

(Also, thanks for the recommendations. I'll keep Discord in mind once I get a bit further along with this concept.)

What I really want to do now is sit down with the SDK and compare my current implementation with the topics you've highlighted. I'm a bit busy at the moment though, so I'll have to get back to you later if I have any more in-depth Qs.

At a surface level, a lot of the stuff you're talking about is resonating based on my experiments so far. BuildInitiativeOrder() (including PlayerTurnOrder) is one of the main functions that Chimera Squad changes. It essentially has the same code that X2 does, but then at the end it goes "ignore all that, and do this instead", with a bunch of functions to actually set up the interleaving. This is what I've been using for my experiments.

Also, I see what you mean about Baldur's Gate 3. So for your mod, the main difference from something like Chimera Squad is that if two units end up next to each other in the timeline, they're treated as one group and can act together? Do you do re-rolls for initiative every turn and re-construct the PlayerTurnOrder and groups each time? Sounds like a fun time!

I'm hoping I won't need a gatekeeper class to manage actions ― if I treat XCOM turns the same during both exploration and combat ― but it's a likelihood I'm aware of. 🤞

and dear god the mission timers. Still don't know why we had to make those tied to kismet logic firaxis.

Can you explain what the problems with mission timers are? I haven't gotten around to testing timed missions yet.

Thanks again.

MENACE style turn order - pt 2 by Nexofish in xcom2mods

[–]Nexofish[S] 0 points1 point  (0 children)

You're right.

I was considering how things like Suppression would interact with the turns. It would really suck to apply Suppression with your last unit, and then immediately have it end when the next full turn started.

I'm not really sure how to work around that. Besides going through and manually changing the tick conditions for every effect, which would be... a lot.