Endless-Sky-Pirate-Campaign / endless-sky

Space exploration, trading, and combat game.
http://endless-sky.github.io/
GNU General Public License v3.0
2 stars 1 forks source link

Fining revamp - hailing panel when getting scanned and more #5

Closed quyykk closed 2 years ago

quyykk commented 2 years ago

Feature Details

The big thing I haven't implemented yet is if you have your illegal mission cargo on an escort and someone scans your flagship it shouldn't be able to detect the cargo (cause it's on another ship).

UI Screenshots

When a ship scans you whose government doesn't accept bribes:

illegal hail without bribe png

When a ship scans you whose government does accept bribes:

illegal hail with bribe

Data definitions

government X
    "interdiction" <msg> # the message to show when a ship is fined by a ship of this government
    ...
    "interdiction bribe" <msg> # the message to show when a ship is fined by a ship of this government
                               # *and* the ship can be bribed
    ...

Testing Done

Tested a bit. There's probably still some edge case bugs left though.

Performance Impact

Negligible.

Galaucus commented 2 years ago

Regarding your questions:

1) Flee should indeed provoke the government, and allied governments. If you decide to run, the police and navy should turn hostile for the day.

2) Let's rename "dump cargo" to "surrender cargo" and have it remove it directly from the cargo hold. This will show that you're transferring it to the interdicting ship rather than just shoving it out into space where you could come back for it. A flotsam effect could be cool, but the important thing is that you can't just pick it up and recover it.

3) Regarding bribes, let's institute a "bribe factor" for each government. It'll be how much you need to offer to evade a fine, with a factor of 0 meaning you can't bribe your way out of a fine. Example, "bribe factor" 0.6 and a 100c fine means you need to pay 60c in bribes to continue with your cargo.

4) Atrocities should not incur fines, just a heavy reputation hit and immediately angering the scanning faction.

5) Bribing a ship should bribe that government for the whole day. Let it reset when you jump out - no need to punish the player by having them pay multiple bribes in the same system.

6) Installed outfits should remain installed. We're going to be making dirty cops that use hyperdrives as their "illegal" outfit so that they ask the player for bribes. The last thing we need is the player having to eject it. Perhaps you could program the popup window so that it shows only "Pay Fine" instead of "Pay Fine and Surrender Cargo" if there's no cargo in the hold, just installed outfits?

Galaucus commented 2 years ago

Let's change "Pay and Dump Cargo" to "Surrender Cargo", I think that'll fit.

quyykk commented 2 years ago

A flotsam effect could be cool, but the important thing is that you can't just pick it up and recover it.

Only for the player? Cause I can make it so that the floatsam can be picked up by anyone except the player. Or alternatively, by nobody.

Galaucus commented 2 years ago

A flotsam effect could be cool, but the important thing is that you can't just pick it up and recover it.

Only for the player? Cause I can make it so that the floatsam can be picked up by anyone except the player. Or alternatively, by nobody.

That would work! If police ships could scoop the flotsam up that would be great. They don't even have to get every piece, it's just good for the look of the thing.

quyykk commented 2 years ago

Done! It doesn't eject anything for mission cargo though. I didn't look into it yet, but it's probably going to require a lot of changes to the engine.

Galaucus commented 2 years ago

Sounds good! I'll leave when to merge this up to @Terin , as they are most wise when it comes to such matters.

Terin commented 2 years ago

Probably will merge it in just a bit, although just for testing purposes. Once we've tested it to be good to go, then it can be PR'd to the main repo, and we'll remove the code from this branch before it merges.