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 Soviet10 #19191

Merged
merged 1 commit into from
May 8, 2021
Merged

Add Soviet10 #19191

merged 1 commit into from
May 8, 2021

Conversation

Smittytron
Copy link
Member

No description provided.

Copy link
Member

@pchote pchote left a comment

Choose a reason for hiding this comment

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

The original mission script (see https://gist.githubusercontent.com/pchote/558172f2bb290915e0d506cca6b99b8f/raw/f1dd9c18d9ab37b7cd82453c2f772a726fe5eb47/scu10ea.txt, mostly complete except for the missions assigned to spawned teams) shows a few extra triggers to destroy buildings when barrels are blown up, granting map vision when capturing the radar dome (not sure this makes sense to port over, but maybe we could do something else?), and selling off all structures when certain actors are attacked.

Do we want to include these?

mods/ra/maps/soviet-10/soviet10.lua Show resolved Hide resolved
mods/ra/maps/soviet-10/soviet10.lua Outdated Show resolved Hide resolved
@pchote
Copy link
Member

pchote commented Feb 27, 2021

It would be nice polish IMO if we could script the convoy trucks to drive off the map before triggering mission accomplished.

@Smittytron
Copy link
Member Author

Smittytron commented Feb 27, 2021

It would be nice polish IMO if we could script the convoy trucks to drive off the map before triggering mission accomplished.

Done

...destroy buildings when barrels are blown up, granting map vision when capturing the radar dome (not sure this makes sense to port over, but maybe we could do something else?), and selling off all structures when certain actors are attacked.

Added a kill trigger on the first AA gun. It looks like most of those kill triggers are on trees to turn them into dead trees when the barrels around them are destroyed. As for the radar, a big difference in this mission is OpenRA's planes can clear shroud, so I don't think the player is hurting for map info.

Selling is an interesting point. We haven't really used Sell() in any missions so far but I know several buildings in the OG would sell on a damage threshold. Judging by the cells I'm guessing the sell trigger is to sell the radar dome, but I can't tell for sure without re-importing because I deemed the GoodGuy player unnecessary and changed those actors to Greece. We can use Sell() if you want here but I'd want to start adding it in every mission old and new as it will be random to just have it here.

I also added a secondary objective to keep all trucks alive.

@darcyrush
Copy link

darcyrush commented Feb 27, 2021

Plays ok on hard but some strange follow behavior of one of the convoy trucks near the end almost cost me the mission. And the trucks didn't drive off the map for me

ra-2021-02-27T085004Z.zip

mods/ra/maps/soviet-10/soviet10.lua Outdated Show resolved Hide resolved
mods/ra/maps/soviet-10/soviet10.lua Outdated Show resolved Hide resolved
@pchote
Copy link
Member

pchote commented Feb 27, 2021

⚠️ Rant incoming ⚠️ TLDR: i'm not actually fussed about what we do here right now, but would really like if we could start planning for a future where scripts and events are consistent throughout the campaign.

It looks like most of those kill triggers are on trees to turn them into dead trees when the barrels around them are destroyed.

Selling is an interesting point.

These both touch on my main motiviation for developing the mission script decoder: I expect that some of our mission ports are missing events/strategies because the person porting them didn't know that they existed, or didn't get the details of the implementation quite right. We also have inconsistencies in how we handle base reconstruction / fire sales, harvester defense behaviour (https://i.redd.it/e35reiuyhlc51.jpg), and so on which IMO makes our campaign implementation feel less coherant than it should.

In the short to medium term I would really like if we could use the new tools to understand exactly how the originals worked, and write a comment at the top of each mission's lua file that explains the original mission script and our intentional and unintentional deviations from it. This information is then available for when we hopefully one day go through and properly implement our consistent "OpenRA style" mission adjustments for aircraft vision, mcv undeploy, engineers, hinds, and so on.

I'll repeat again that I don't think we should be aiming for 1:1 script compatibility, but rather that all differences are deliberately decided and documented. I think its a bit sad if we end up missing details no real reason except that we didn't know about them or couldn't be bothered to add them.

The radar dome is a good example here, I dug into this properly after your comment and confirmed that the AI will sell it (the dome is the only structure owned by goodguy) if the player crosses the red line or kills any of the circled units:

Screenshot 2021-02-27 at 13 48 02

This is a nice little detail because it means that you need to be careful to not push forward too early if you want to get the benfits from the dome.

Another example in this mission are the two rows of turrets at the pinch point. The original map scripted the AI to rebuild these if they are destroyed, and used the trp3-6 and det3-6 triggers to script destroying them if you shoot the barrels.

I'm not sure we want to keep the detonation triggers here, since the aircraft vision otherwise makes this mission really easy. But we should document this in the script, and should remove the barrels from the base since they are obviously there purely for this purpose so it will be confusing to players if they find that this strategy no longer works. IMO an even better solution would be to adjust these mini bases to have two sets of two AA guns with barrels between them, so the player must use their ground units to clear them before they can move the Migs in to take out the turrets.

I found that the remastered map editor does a good job at displaying things with special behaviours attached (green = triggers, red = auto rebuild), but needed to get https://www.ppmforums.com/topic-54754/improvements-for-the-map-editor/ before it would load the soviet10 ini. This plus my utility command together will hopefully make it reasonably easy to understand the original mission scripts.

@Smittytron Smittytron force-pushed the Soviet10 branch 3 times, most recently from a49f483 to 83fa8eb Compare February 28, 2021 16:08
@Smittytron Smittytron force-pushed the Soviet10 branch 4 times, most recently from ff756f7 to afce1de Compare March 4, 2021 15:40
@Smittytron
Copy link
Member Author

Updated with a secondary objective for keeping migs alive. Added the chinook drop that would ambush the player below the service depot. And to address the point about documentation I added notes at the top for the things I've left out that I know are in the original.

@KautionORA
Copy link

Just finished this on hard, didn't come across anything in particular, except for a weird pathing bug causing the truck to drive into the enemy and commits suicide.

the only other thing worth noting is that the secondary objectives dont show they're completed once the main objective is completed, which i assume should be the trigger for completing the secondary objectives besides from the actual goal.

Kaution files Soviet 10.zip

@pchote
Copy link
Member

pchote commented Apr 7, 2021

The mission script has a case that is supposed to mark "Do not lose a single truck" as completed, so it may be a bug if that isn't triggering. The script doesn't have any code to mark the mig objective complete, so that does appear to be an oversight.

@Smittytron
Copy link
Member Author

Updated. Added the logic for completing the mig objective. The replay provided showed a failed objective for saving all trucks. I got all objectives to complete for me in another playthrough.

pchote
pchote previously approved these changes Apr 27, 2021
Copy link
Member

@pchote pchote left a comment

Choose a reason for hiding this comment

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

LGTM. Just two very minor nits, and its awkward that the planes take off and then re-land at the start but fixing that is out of scope of this PR.

mods/ra/maps/soviet-10/rules.yaml Outdated Show resolved Hide resolved
mods/ra/maps/soviet-10/soviet10.lua Outdated Show resolved Hide resolved
@Smittytron
Copy link
Member Author

Updated

pchote
pchote previously approved these changes Apr 28, 2021
@reaperrr
Copy link
Contributor

reaperrr commented May 8, 2021

LGTM after that.

@Smittytron
Copy link
Member Author

Updated

@reaperrr reaperrr merged commit eda79d8 into OpenRA:bleed May 8, 2021
@Smittytron Smittytron deleted the Soviet10 branch May 8, 2021 23:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

6 participants