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 Allies10a #19336

Merged
merged 3 commits into from
Oct 26, 2021
Merged

Add Allies10a #19336

merged 3 commits into from
Oct 26, 2021

Conversation

Smittytron
Copy link
Member

This mission and its counterpart Allies10b play a bit differently from the other missions in the original. During the missile launch sequence, a video interrupted to deliver a second briefing to the player. We can’t do that here so I’ve written up a text sequence to deliver this information. I wrote it in a way I thought would make sense, but I’m open to polish suggestions. Also, on completion, the game would immediately go into Allies10b without going to a score screen. Just noting that for now.

10a and 10b are meant to be played consecutively unlike the other campaign missions labeled a or b. I thought of naming them 10 Part-1 and 10 Part-2, but the original has them as a and b. Once we get campaign progression (#17067) this point will be moot.

@pchote
Copy link
Member

pchote commented Apr 27, 2021

The original mission had a hidden shortcut where you could destroy the trees along the northern edge to sneak your units straight to the command center, bypassing most of the base.

IMO adding tree destruction in as a special case for this mission would be confusing, so how about we modify that part with a destroyed bridge that can be repaired?

Screenshot 2021-04-27 at 22 00 30

@pchote
Copy link
Member

pchote commented Apr 27, 2021

Here's the output from my script decoder (still missing TeamType actions, I will try to come back to finishing this soon):

Click to expand
Trigger@set0:
	On:
		 0.0 minutes have elapsed
	Actions:
		 Reinforce with team "amcv"
		 Reinforce with team "arnf0"
	Disable: After running once
Trigger@for1:
	On:
		 Attached unit or building is attacked
		 AND
		 Global scenario variable 1 is not set
	Actions:
		 Set global scenario variable 1
	Disable: After running once
	AttachedTo:
		 Actor14 (mslo owned by house "USSR" at cell 57,59)
		 Actor15 (mslo owned by house "USSR" at cell 57,54)
		 Actor16 (mslo owned by house "USSR" at cell 63,54)
		 Actor17 (mslo owned by house "USSR" at cell 63,59)
Trigger@lch1:
	On:
		 Global scenario variable 1 is set
	Actions:
		 Play speech message "ALAUNCH1"
		 Run trigger "lch2"
	Disable: After running once
Trigger@hrss:
	On:
		 Attached cell entered or attached building captured by house "Greece"
	Actions:
		 Reinforce with team "hrss"
	Disable: After running once
	AttachedTo:
		Cells: 36,72, 37,72, 38,72, 39,72, 36,73, 37,73, 38,73, 39,73, 24,75, 25,75, 26,75, 27,75, 24,76, 25,76, 26,76, 27,76
Trigger@bdt1:
	On:
		 Attached unit or building is attacked
	Actions:
		 Create team "brdt"
	Disable: After running once
	AttachedTo:
		 Actor142 (e2 owned by house "USSR" at cell 77,91)
		 Actor143 (e2 owned by house "USSR" at cell 76,93)
		 Actor171 (e2 owned by house "USSR" at cell 78,91)
		 Actor172 (e2 owned by house "USSR" at cell 75,93)
Trigger@bdtr:
	On:
		 Attached unit or building is destroyed
		 AND
		 0.2 minutes have elapsed
	Actions:
		 Run trigger "bdt2"
	Disable: After running once
	AttachedTo:
		 Actor89 (brl3 owned by house "Neutral" at cell 75,91)
Trigger@bdt2:
	On:
		 Manual Trigger
	Actions:
		 Destroy attached buildings
		 Destroy attached buildings
	Disable: After running once
	AttachedTo:
		Cells: 76,93
Trigger@pek2:
	On:
		 Attached cell entered or attached building captured by house "Greece"
	Actions:
		 Create team "peek2"
	Disable: After running once
	AttachedTo:
		Cells: 26,86, 27,86, 28,86, 29,86, 30,86, 31,86, 32,86, 33,86, 26,87, 27,87, 28,87, 29,87, 30,87, 31,87, 32,87, 33,87
Trigger@pek1:
	On:
		 Attached cell entered or attached building captured by house "Greece"
	Actions:
		 Create team "peek1"
	Disable: After running once
	AttachedTo:
		Cells: 48,94, 49,94, 48,95, 49,95, 48,96, 49,96, 48,97, 49,97, 48,98, 49,98, 48,99, 49,99, 48,100, 49,100
Trigger@hrv1:
	On:
		 Attached cell entered or attached building captured by house "Greece"
		 OR
		 3.5 minutes have elapsed
	Actions:
		 Enable production for house "USSR"
	Disable: After running once
	AttachedTo:
		Cells: 55,72, 56,72, 55,73, 56,73, 55,74, 56,74, 55,75, 56,75, 55,76, 56,76, 55,77, 56,77, 55,78, 56,78, 82,78, 83,78, 84,78, 85,78, 100,78, 101,78, 56,79, 82,79, 83,79, 84,79, 85,79, 86,79, 100,79, 101,79, 56,80, 57,80, 58,80, 59,80, 60,80, 61,80, 55,81, 56,81, 57,81, 58,81, 59,81, 60,81, 61,81
Trigger@alrt:
	On:
		 Attached cell entered or attached building captured by house "Greece"
	Actions:
		 Enable AI autocreate for house "Bad"
		 Enable production for house "Bad"
	Disable: After running once
	AttachedTo:
		Cells: 90,65, 91,65, 92,65, 93,65, 94,65, 95,65, 90,66, 91,66, 92,66, 93,66, 94,66, 95,66
Trigger@narf:
	On:
		 Attached unit or building is destroyed
	Actions:
		 Set global scenario variable 3
	Disable: After running on all attached objects
	AttachedTo:
		 Actor83 (afld owned by house "BadGuy" at cell 91,51)
		 Actor84 (afld owned by house "BadGuy" at cell 88,51)
		 Actor85 (afld owned by house "BadGuy" at cell 90,53)
		 Actor86 (afld owned by house "BadGuy" at cell 87,53)
Trigger@lch2:
	On:
		 Manual Trigger
	Actions:
		 Reveal area around "waypoint19" (60,56)
		 Set global scenario variable 2
	Disable: After running once
Trigger@lch3:
	On:
		 0.2 minutes have elapsed
		 AND
		 Global scenario variable 2 is set
	Actions:
		 Play Movie ALLY10B
		 Run trigger "lch4"
	Disable: After running once
Trigger@lch4:
	On:
		 Manual Trigger
	Actions:
		 Start mission timer with 8.4 minutes remaining
		 Display text message 24 from tutorial.ini
	Disable: After running once
Trigger@los1:
	On:
		 All buildings (excluding civilian) and units owned by house "Greece" are destroyed
	Actions:
		 House "Greece" is defeated
	Disable: After running once
Trigger@los2:
	On:
		 Mission timer expired
	Actions:
		 House "Greece" is defeated
	Disable: After running once
Trigger@win1:
	On:
		 Attached cell entered or attached building captured by house "Greece"
		 LINKED
		 Attached unit or building is destroyed
	Actions:
		 House "Greece" is victorious
		 House "Greece" is defeated
	Disable: After running once
	AttachedTo:
		 Actor4 (fcom owned by house "USSR" at cell 60,55)
Trigger@auto:
	On:
		 Attached cell entered or attached building captured by house "Greece"
		 OR
		 20.0 minutes have elapsed
	Actions:
		 Enable AI autocreate for house "USSR"
		 Set global scenario variable 5
	Disable: After running once
	AttachedTo:
		Cells: 81,72, 82,72, 83,72, 63,73, 64,73, 81,73, 82,73, 63,74, 64,74, 81,74, 82,74, 63,75, 64,75, 81,75, 82,75, 63,76, 82,76
Trigger@pdrp:
	On:
		 Attached cell entered or attached building captured by house "USSR"
	Actions:
		 Reinforce with team "para1"
		 Reinforce with team "para2"
	Disable: After running once
	AttachedTo:
		Cells: 45,89, 46,89, 47,89
Trigger@tree:
	On:
		 Global scenario variable 5 is set
	Actions:
		 Create team "tree1"
		 Create team "Unknown (ID -1)"
	Disable: After running once
Trigger@tm3:
	On:
		 3.0 minutes have elapsed
	Actions:
		 Create team "min3"
	Disable: After running once
Trigger@tm9:
	On:
		 9.0 minutes have elapsed
	Actions:
		 Reinforce with team "min9"
	Disable: After running once
Trigger@tm15:
	On:
		 15.0 minutes have elapsed
	Actions:
		 Create team "min15"
	Disable: After running once
Trigger@glb4:
	On:
		 Attached cell entered or attached building captured by house "Greece"
	Actions:
		 Set global scenario variable 3
	Disable: After running once
	AttachedTo:
		Cells: 78,52, 77,53, 78,53, 77,54, 78,54
Trigger@mig1:
	On:
		 Global scenario variable 3 is not set
		 AND
		 40.0 minutes have elapsed
	Actions:
		 Reinforce with team "mig1"
	Disable: Never
Trigger@mig2:
	On:
		 Global scenario variable 4 is set
		 AND
		 2.0 minutes have elapsed
	Actions:
		 Reinforce with team "mig2"
	Disable: After running once
Trigger@yak1:
	On:
		 Global scenario variable 3 is not set
		 AND
		 27.0 minutes have elapsed
	Actions:
		 Reinforce with team "yak0"
	Disable: Never
Trigger@mig3:
	On:
		 Global scenario variable 3 is not set
		 AND
		 34.0 minutes have elapsed
	Actions:
		 Reinforce with team "mig0"
	Disable: Never
Trigger@yak2:
	On:
		 Global scenario variable 5 is set
		 AND
		 7.0 minutes have elapsed
	Actions:
		 Reinforce with team "yak1"
	Disable: Never
Trigger@tm22:
	On:
		 22.0 minutes have elapsed
	Actions:
		 Create team "min22"
	Disable: After running once
Trigger@lch5:
	On:
		 Global scenario variable 2 is set
	Actions:
		 Animate A-bomb launch
	Disable: After running once
Trigger@for2:
	On:
		 15 buildings (including civilian) owned by house "USSR" are destroyed
		 AND
		 Global scenario variable 1 is not set
	Actions:
		 Set global scenario variable 1
	Disable: After running once
Trigger@for3:
	On:
		 Attached cell entered or attached building captured by house "Greece"
		 AND
		 Global scenario variable 1 is not set
	Actions:
		 Set global scenario variable 1
	Disable: After running once
	AttachedTo:
		Cells: 48,51, 49,51, 50,51, 51,51, 48,52, 49,52, 50,52, 51,52, 56,53, 57,53, 58,53, 59,53, 60,53, 61,53, 62,53, 63,53, 64,53, 65,53, 56,54, 65,54, 56,55, 65,55, 56,56, 65,56, 56,57, 65,57, 56,58, 65,58, 56,59, 65,59, 56,60, 57,60, 58,60, 59,60, 60,60, 61,60, 62,60, 63,60, 64,60, 65,60, 64,61, 65,61, 64,62, 65,62, 64,63, 65,63, 64,64, 65,64, 64,65, 65,65, 64,66, 65,66, 64,67, 65,67, 64,68, 65,68, 64,69, 65,69, 65,70
Trigger@for4:
	On:
		 Attached unit or building is destroyed
		 AND
		 Global scenario variable 1 is not set
	Actions:
		 Set global scenario variable 1
	Disable: After running once
	AttachedTo:
		 Actor0 (fact owned by house "USSR" at cell 74,59)
Trigger@for5:
	On:
		 90.0 minutes have elapsed
		 AND
		 Global scenario variable 1 is not set
	Actions:
		 Set global scenario variable 1
	Disable: After running once
Trigger@lch6:
	On:
		 0.1 minutes have elapsed
		 AND
		 Global scenario variable 2 is set
	Actions:
		 Display text message 23 from tutorial.ini
		 Play sound effect "RADARON2"
	Disable: After running once
Trigger@txt1:
	On:
		 5.0 minutes have elapsed
		 AND
		 Global scenario variable 2 is set
	Actions:
		 Display text message 24 from tutorial.ini
	Disable: Never
Trigger@txt0:
	On:
		 5.0 minutes have elapsed
		 AND
		 Global scenario variable 2 is not set
	Actions:
		 Display text message 6 from tutorial.ini
	Disable: Never
Trigger@txt2:
	On:
		 0.0 minutes have elapsed
	Actions:
		 Display text message 6 from tutorial.ini
		 Create team "truk"
	Disable: After running once
Trigger@txt3:
	On:
		 45.0 minutes have elapsed
		 AND
		 Global scenario variable 2 is set
	Actions:
		 Display text message 11 from tutorial.ini
	Disable: After running once
TeamType@amcv:
	Units: MCV
TeamType@arnf0:
	Units: 2TNK, 2TNK, 2TNK, 2TNK
TeamType@tree1:
	Units: V2RL, V2RL
TeamType@hrss:
	Units: E2, E2, E2, DOG, 3TNK
TeamType@mtgrd1:
	Units: 3TNK
TeamType@mtgrd2:
	Units: 3TNK
TeamType@brdt:
	Units: E2
TeamType@peek1:
	Units: E1, E4
TeamType@peek2:
	Units: E2, E2, DOG
TeamType@mig0:
	Units: MIG, MIG
TeamType@yak0:
	Units: YAK, YAK
TeamType@grdam:
	Units: E1, E1, E2, E2, E2
TeamType@grdaj:
	Units: E2, E2, E2, E4, E4
TeamType@bggdn:
	Units: E1, E1, E2, E2, E2
TeamType@bgat1:
	Units: E4, E4, E4, E4
TeamType@grdr:
	Units: E2, E2, E2, E4, E4, 3TNK
TeamType@bgat2:
	Units: E2, E2, E2, E2, E2, E2, E4, E4
TeamType@grdq:
	Units: E1, E1, E4, E4, 3TNK
TeamType@para1:
	Units: E1, E1, E1, E1, E1, BADR
TeamType@para2:
	Units: E1, E1, E1, E1, E1, BADR
TeamType@atkf:
	Units: E1, E1, E2, E2, E2, 3TNK
TeamType@atkd:
	Units: 3TNK, 3TNK, V2RL
TeamType@atk1:
	Units: E4, E4, E4, E4, E4
TeamType@min3:
	Units: 3TNK
TeamType@min9:
	Units: YAK
TeamType@min15:
	Units: E2, E2, E2, DOG, 3TNK
TeamType@mig1:
	Units: MIG
TeamType@mig2:
	Units: MIG, MIG, MIG, MIG
TeamType@yak1:
	Units: YAK
TeamType@min22:
	Units: E1, E1, E2, E2, E2, E2
TeamType@dog:
	Units: DOG, DOG
TeamType@truk:
	Units: TRUK
ScriptedBuildingProduction: house "USSR"
	PROC at cell 67,65
	PROC at cell 72,66

@tttppp
Copy link

tttppp commented May 8, 2021

This level seems incredibly hard on easy. First attempt I lost my MCV to the mammoth/heavy/v2 combination near the start. Second attempt I was overwhelmed by attacks on both sides shortly after the missile announcement. The migs were a pain too.

Completed on the fourth attempt (destroyed the command centre on the third), but this didn't feel "easy". To be fair then it's a later level, and there's not really any time pressure. I haven't tried normal or hard yet.

@Smittytron
Copy link
Member Author

Smittytron commented May 21, 2021

Got the missile launch video sequence to work. Silos don't show their building animation with a scripted launch so a bit of a polish bug there. I haven't tested the fallback message with uninstalled videos. If someone without videos installed can beat me to it I'd appreciate it. Also updated difficulty a bit and added multiple sequences from the script decoder.

I want to hold out for destructible trees on the north path. To me it's more of an Easter egg than something we want players to readily know about. I think the bridge would give the path away too easily. And if we never get trees then I still don't mind players not skipping 90% of my script. 😄

@Smittytron Smittytron force-pushed the Allies10a branch 2 times, most recently from d576fee to 90322ee Compare May 22, 2021 21:45
@tttppp
Copy link

tttppp commented May 26, 2021

Without the video I saw the missiles launch and got this text:
image

@Smittytron
Copy link
Member Author

Without the video I saw the missiles launch and got this text:

That's working then, thanks!
I think I'll change 'missile control center' to 'missile control bunker'.

@tttppp
Copy link

tttppp commented May 27, 2021

One slightly odd thing here is that I didn't really complete the objective - the missiles launched. Maybe we could have a message saying something like "Primary objective updated" or "Objective obsolete"?

Btw: The difficulty level for easy now feels right to me.

@tttppp
Copy link

tttppp commented May 27, 2021

It's possible to trigger the A-Bomb launch really early in the mission without crossing the river - by going near to the compound:
image
I don't know if this is deliberate or not, and it doesn't have much of an impact on the mission since the timer is quite generous.

@tttppp
Copy link

tttppp commented May 27, 2021

Completed on all difficulties. I needed a few attempts for hard and was almost rolled by mammoths at one point. Nice mission - thanks!

@Smittytron
Copy link
Member Author

I didn't really complete the objective - the missiles launched.

I could go with a more generic objective like 'Locate the missiles' but that seems odd to me. The player knows from the briefing that they are to take the facility off-line, they just get an updated objective halfway through.

I don't know if this is deliberate or not, and it doesn't have much of an impact on the mission since the timer is quite generous.

The proximity trigger is deliberate. Approach the base and the missiles launch. I noticed the health bar on the service depot and FC, and fixed those not starting at full health.

@Smittytron Smittytron mentioned this pull request Jul 4, 2021
@pchote pchote added this to the Next release milestone Aug 4, 2021
@abcdefg30 abcdefg30 self-requested a review August 4, 2021 18:09
@abcdefg30 abcdefg30 self-assigned this Aug 4, 2021
Copy link
Contributor

@obrakmann obrakmann left a comment

Choose a reason for hiding this comment

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

Apart from the timer strangeness, this mission was really fun to play. The difficulty was just right for me as well. Really good job!

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

Updated to correct the typo and placed notifications in a correct place. I haven't converted to TimeLimitManager yet as I haven't figured out how to turn off the timer when it isn't started, and how to change the color of the timer. From Discord:

pchote: i don't see a way to hide/show the CountdownText label
pchote: we should add a new lua api for that
pchote: should be really easy
Smitty: Also color. I don't see a way to set text color either unless you can overlap it with lua.(edited)
pchote: i suggest going ahead with implementing it and then bug me or someone else until we add the c# bits to hide/change the label
pchote: we may not even need a lua api for this
pchote: just hiding that label if there isn't a time limit set is probably better
pchote: or could keep that label undefined on the trait, and then just fetch the time out of the trait to display manually?

@obrakmann: Thoughts on which way to go here? Can take it as is or update to TimeLimitManager and leave the outstanding issues for followups.

@obrakmann
Copy link
Contributor

You can look at the necessary changes here. The first commit makes sure the label isn't shown constantly, the second updates the map. I didn't add support for colors. If you think that's absolutely necessary, then go with what you have now, otherwise you can take the changes from this branch.

@Smittytron
Copy link
Member Author

@obrakmann Updated with your commits, but (assuming I cherry-picked correctly) I'm still getting a 00:00 timer at the start.

@obrakmann
Copy link
Contributor

Just checked, works fine here. You probably just forgot to recompile.

Copy link
Contributor

@obrakmann obrakmann left a comment

Choose a reason for hiding this comment

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

👍

tttppp
tttppp previously approved these changes Sep 20, 2021
Copy link

@tttppp tttppp left a comment

Choose a reason for hiding this comment

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

This looked good to me.

abcdefg30
abcdefg30 previously approved these changes Oct 25, 2021
Copy link
Member

@abcdefg30 abcdefg30 left a comment

Choose a reason for hiding this comment

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

Needs a rebase.

@Smittytron
Copy link
Member Author

Rebased

@abcdefg30 abcdefg30 merged commit 7f3130c into OpenRA:bleed Oct 26, 2021
@abcdefg30
Copy link
Member

Changelog

@Smittytron Smittytron deleted the Allies10a branch October 26, 2021 19:09
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

5 participants