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

Implement variable transport speeds #6309

Merged
merged 28 commits into from
Jul 10, 2024

Conversation

Basilisk3
Copy link
Collaborator

@Basilisk3 Basilisk3 commented Jun 26, 2024

Implement transports moving at different speeds depending on how many and which types of units they have loaded. Closes #6186.

Description of the proposed changes

  • Each Tech 1 unit decreases the transport's MaxAirspeed by 0.15
  • Each Tech 2 unit decreases the transport's MaxAirspeed by 0.3
  • Each Tech 3 unit decreases the transport's MaxAirspeed by 0.6
  • ACUs decrease the transport's MaxAirspeed by 1

Stat changes:

Transport
MaxAirspeed: 10 --> 10.75 (Tech 1 Transports)
MaxAirspeed: 13.5 --> 14.5 (Tech 2 Transports)
MaxAirspeed: 15 --> 17.5 (The Continental)

Land units
TransportSpeedReduction: 0.15 (Tech 1 land units)
TransportSpeedReduction: 0.3 (Tech 2 land units)
TransportSpeedReduction: 0.6 (Tech 3 land units)
TransportSpeedReduction: 1 (ACUs and SACUs)
TransportSpeedReduction: 1 (Tech 4 land units, to ensure compatibility with survival maps)
TransportSpeedReduction: 1 (naval units, to ensure mod compatibility)

The TransportSpeedReduction stat can be tweaked for each unit individually, though I did not do it here for consistency reasons. For example, you can make LABs lighter than tanks. The TransportSpeedReduction stat has also been made visible in the UI by adding it to the additional unit details displayed when Show Armament Detail in Build Menu is enabled.

Additional context

  • As Jip already pointed out, the change introduces a new balance knob.
  • Enables more teamplay, as getting an empty transport to your teammates is faster.
  • The changes would introduce a new choice for the player, allowing him to decide between a swift and less damaging drop or a slower but more damaging one.
  • Nerfs arty drops, specifically Seraphim transports fully loaded with Zthuees, in an intuitive way. As Seraphim has the highest capacity transports (and the strongest Tech 1 Artillery), I regard this as a positive.

Checklist

  • Populate the TransportSpeedReduction blueprint field of all land units (alternative approach via blueprints-units.lua)
  • Changes are annotated, including comments where useful
  • Changes are documented in the changelog for the next game version

@Basilisk3 Basilisk3 marked this pull request as draft June 26, 2024 19:53
@Basilisk3
Copy link
Collaborator Author

Basilisk3 commented Jun 26, 2024

@EvildrewFAF This is my own implementation of this idea. You are obviously free to do whatever you want with it. Since your implementation is more detailed, overriding this would be the easiest solution to keep your mod compatible. Alternatively you could build your own implementation on top of this one.

@Garanas @lL1l1 If you have time, please consider giving this a review. I would be very thankful if someone could populate the UnitWeight stat with a script, so I do not have to do it manually.

@Garanas
Copy link
Member

Garanas commented Jun 27, 2024

Are you referring to this blueprint value: #6279

lua/sim/units/AirTransportUnit.lua Outdated Show resolved Hide resolved
lua/sim/units/AirTransportUnit.lua Outdated Show resolved Hide resolved
lua/sim/units/AirTransportUnit.lua Outdated Show resolved Hide resolved
lua/sim/units/AirTransportUnit.lua Outdated Show resolved Hide resolved
lua/sim/units/AirTransportUnit.lua Outdated Show resolved Hide resolved
@lL1l1
Copy link
Contributor

lL1l1 commented Jun 27, 2024

Also the stat should be added to blueprints-units.lua's post-processing for mod compatibility.

@Basilisk3
Copy link
Collaborator Author

Also the stat should be added to blueprints-units.lua's post-processing for mod compatibility.

Done. Thanks for reviewing.

@Basilisk3
Copy link
Collaborator Author

Are you referring to this blueprint value: #6279

The UnitWeight stat is now populated via blueprints-units.lua. We could also populate the field in the blueprints themselves to make the stat more visible.

@Basilisk3 Basilisk3 requested a review from lL1l1 June 28, 2024 15:42
@Basilisk3 Basilisk3 marked this pull request as ready for review June 28, 2024 20:42
@MrRowey MrRowey added area: balance related to units balance DO NOT MERGE Don't Merge until removed labels Jun 28, 2024
@Garanas
Copy link
Member

Garanas commented Jun 29, 2024

Are you referring to this blueprint value: #6279

The UnitWeight stat is now populated via blueprints-units.lua. We could also populate the field in the blueprints themselves to make the stat more visible.

I'll look into it for you 👍

@Basilisk3
Copy link
Collaborator Author

This should be ready now, thanks for the reviews.

@MrRowey
Copy link
Member

MrRowey commented Jul 1, 2024

The balance team would like to test this out first so once reviews are happy this can be merged as apart of the next iteration.

@MrRowey MrRowey requested a review from lL1l1 July 9, 2024 10:02
@MrRowey
Copy link
Member

MrRowey commented Jul 9, 2024

are you happy with this now @lL1l1

@lL1l1
Copy link
Contributor

lL1l1 commented Jul 10, 2024

are you happy with this now @lL1l1

Yes.

@MrRowey MrRowey merged commit 28ecf91 into FAForever:develop Jul 10, 2024
5 checks passed
@Basilisk3 Basilisk3 deleted the VariableTransportSpeeds branch July 10, 2024 10:49
Garanas pushed a commit that referenced this pull request Jul 13, 2024
Implement transports moving at different speeds depending on how many
and which types of units they have loaded. Closes #6186.

## Description of the proposed changes
- Each Tech 1 unit decreases the transport's MaxAirspeed by `0.15`
- Each Tech 2 unit decreases the transport's MaxAirspeed by `0.3`
- Each Tech 3 unit decreases the transport's MaxAirspeed by `0.6`
- ACUs decrease the transport's MaxAirspeed by `1`

## Stat changes:
**Transport**
MaxAirspeed: 10 --> 10.75 (Tech 1 Transports)
MaxAirspeed: 13.5 --> 14.5 (Tech 2 Transports)
MaxAirspeed: 15 --> 17.5 (The Continental)

**Land units**
TransportSpeedReduction: 0.15 (Tech 1 land units)
TransportSpeedReduction: 0.3 (Tech 2 land units)
TransportSpeedReduction: 0.6 (Tech 3 land units)
TransportSpeedReduction: 1 (ACUs and SACUs)
TransportSpeedReduction: 1 (Tech 4 land units, to ensure compatibility
with survival maps)
TransportSpeedReduction: 1 (naval units, to ensure mod compatibility)

The `TransportSpeedReduction` stat can be tweaked for each unit
individually, though I did not do it here for consistency reasons. For
example, you can make LABs lighter than tanks. The
`TransportSpeedReduction` stat has also been made visible in the UI in
the additional unit details displayed when `Show Armament Detail in
Build Menu` is enabled.

## Additional context
- As Jip already pointed out, the change introduces a new balance knob.
- Enables more teamplay, as getting an empty transport to your teammates
is faster.
- The changes would introduce a new choice for the player, allowing him
to decide between a swift and less damaging drop or a slower but more
damaging one.
- Nerfs arty drops, specifically Seraphim transports fully loaded with
Zthuees, in an intuitive way. As Seraphim has the highest capacity
transports (and the strongest Tech 1 Artillery), I regard this as a
positive.

## Checklist
- [x] ~~Populate the `TransportSpeedReduction` blueprint field of all
land units~~ (alternative approach via blueprints-units.lua)
- [x] Changes are annotated, including comments where useful
- [x] Changes are documented in the changelog for the next game version

---------

Co-authored-by: lL1l1 <[email protected]>
@Basilisk3 Basilisk3 removed the DO NOT MERGE Don't Merge until removed label Oct 2, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area: balance related to units balance
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Balance idea: make transports move slower based on how many and which types of units they have loaded
5 participants