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

Fix wrong/haphazard instant-blockades of monster fleets #2220

Merged

Conversation

Projects
1 participant
@Dilvish-fo
Copy link
Member

commented Jul 17, 2018

by having unowned fleets move before owned (empire) fleets

  • prevents wrong/uncertain/haphazard blockade results
  • previously, because of how monster blockades are determined, given an empire
    fleet that is set to move into a system that a monster fleet is set to move out
    of on that same turn, if the empire fleet's movement happened to be processed before that
    monster fleet's movement, the empire fleet would wrongly trap/blockade the monster fleet
  • empire-owned fleets are already protected against such spurious/instant blockades due to
    checks against supply_unobstructed_systems, but that is empty for unowned fleets.

I think that in the past, to the extent that I noticed this kind of situation and blockade, I had lumped it together with a second kind of situation, where an empire fleet and a monster fleet both arrive at the same time, which results (and still results under this PR) in the monster fleet being blockaded. But then I realized that the blockades in the first situation were uncertain/haphazard and depended entirely on which fleet happened to get processed first, which the player doesn't know in advance.

Example-- in the below screenshot and savegame, a larval kraken is set to leave Asterly on the same turn that a Frigate is due to arrive there; without this PR it happens that in this particular case (at least on my machine) the Frigate's movement is processed first and the kraken is insta-blockaded and not allowed to leave.

supply_linkage_incomplete1

monster_blockade_check.sav.zip

I also think that this fix is a safe one, and worth putting into 0.4.8 RC3

Have unowned fleets move before owned (empire) fleets
- prevents wrong/uncertain/haphazard blockade results
- previously, because of how monster blockades are determined, given an empire
  fleet that is set to move into a system that a monster fleet is set to move out
  of on that same turn, if the empire fleet's movement happened to be processed before that
  monster fleet's movement, the empire fleet would wrongly trap/blockade the monster fleet
- empire-owned fleets are already protected against such spurious/instant blockades due to
  checks against supply_unobstructed_systems, but that is empty for unowned fleets.

@Dilvish-fo Dilvish-fo added this to the v0.4.8 (optional) milestone Jul 17, 2018

@Dilvish-fo Dilvish-fo requested a review from geoffthemedio Jul 17, 2018

@Dilvish-fo Dilvish-fo added this to Proposed in 0.4.8 Release Jul 17, 2018

@Dilvish-fo Dilvish-fo merged commit 8ab8cff into freeorion:master Jul 23, 2018

2 checks passed

continuous-integration/appveyor/pr AppVeyor build succeeded
Details
continuous-integration/travis-ci/pr The Travis CI build passed
Details

@Dilvish-fo Dilvish-fo deleted the Dilvish-fo:fix_haphazard_blockade_of_monsters branch Jul 23, 2018

@Dilvish-fo Dilvish-fo moved this from Proposed to Accepted in 0.4.8 Release Jul 23, 2018

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.