Giter VIP home page Giter VIP logo

Comments (2)

o01eg avatar o01eg commented on June 12, 2024

Saves are here https://freeorion-test.dedyn.io/FO0026-saves.7z

from freeorion.

geoffthemedio avatar geoffthemedio commented on June 12, 2024

I think what's happening is that blockadability of fleet / its ships is determined from stealth vs. detection, and not the empire visibility of objects (which can include other factors, such as allied shared visibility or effect-derived visibility overrides).

The reason that stealth vs. detection is used, rather than the empire's visibility of objects is that it is necessary to determine whether there is any fleet that could blockade a moving fleet even when the moving fleet doesn't start its movement in the system where the blockade might occur. So, the local visibility of a not-actually-there fleet potentially needs to be determined for all the systems along the fleet's route. Since the determination of whether a fleet can blockade another depends on whether the moving fleet can be detected, this can't just use the empire's start-of-turn visibility of the moving fleet, which was determined specifically for the fleet's start-of-turn location.

Doing a full visibility update for each potential location where a blockade might occur would be complicated, since it would depend on effects and visibilty sharing between empires, and might end up with weird ordering issues and inconsistencies if the result depends on whether other fleets have moved, etc.

So, instead, it just uses detection strength of the empire vs. stealth of the (ships of the) moving fleet. This is debatably plausible in terms of allied visibility sharing, as presumably there might be a communication delay for sharing that info.

It only seems weird in this case since the moving fleet is already visible, so there's an expectation that it should be equally visible for all considerations at the same location at the same time.

It could be reworked so that departing a system you start in uses the empire visibility and not the detection vs. stealth check, but that could potentially lead to some exploits / micromanagement quirks where if you start in a system, you can't leave it due to a blockade, but if you start at another system and just pass through the first system, you can pass due to the visibility calculations working out differently between the locations.

When deciding if a ship is a potential blockader at a system, I could perhaps do something like using the max detection strength of all the ship's owner and the owner's (allies who also have a ship in the system) instead of just the owner's detection strength. That would solve all the cases, though...

from freeorion.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.