Page 2 of 6

Re: RFC: Bounties and Galcop law

Posted: Sun Jul 15, 2012 4:55 pm
by Disembodied
cim wrote:
Disembodied wrote:
Does GalCop accept distress calls from Offender NPCs when they're attacked by Clean players?
No. Only distress calls from Clean ships are actually accepted by the police, so this bit works as you expect already.
OK, thanks ... that will alter my behaviour next time I see an Offender inside the aegis! :twisted:

Re: RFC: Bounties and Galcop law

Posted: Sun Jul 15, 2012 6:41 pm
by Switeck
SandJ wrote:
Switeck wrote:
As for using an escape pod or Galactic Hyperspace, both should reduce your bounty...but by how much is worthy of debate. I think it would be fair if both Escape Pod use and Gal. Hyper. removed 50 from the bounty.
That I do not understand. I can see the argument for them staying the same (although I disagree with it) and I can see why they could be eliminated, but why would or should either of those things reduce your bounty?
Simple -- you get a bounty reduction for making regular hyperspace jumps, so the Galactic Hyperspace is an EXTREME form of that...but perhaps not so extreme as to merit resetting your bounty to 0 if it's >50.

Escape Pod use loses your ship's id and presumably the "punishment" for having a bounty is paid in part by the loss of your cargo and escape pod. But this way it won't be an instant get-out-of-jail-free if your bounty was >50.
cim wrote:
Switeck wrote:
"F - entered new system (halved)"

I know this is a core tenant of the game, but it feels broken as well.
Commander McLane's [wiki]Anarchies OXP[/wiki] modifies this in (roughly) the way you suggest, and also removes the clearance from using escape pods.
Switeck wrote:
Please make the bounty reduction done by regular hyperspace jumps ONLY when entering a new non-interstellar system
This has been the case since 1.76 (and possibly in some of the 1.75 versions)
Switeck wrote:
and have that done during the this.shipExitedWitchspace = function()
It currently takes place just before the shipWillExitWitchspace handler is called - what's the exploit if it's not moved later?
I'm aware of CML's Anarchies OXP. I'm asking for core Oolite be changed. No big deal if it's not, just it feels broken almost-an-exploit to me.

The problem with doing the bounty reduction just before the shipWillExitWitchspace handler is called is under special conditions the game can't tell that it's NOT about to emerge from witchspace and that handler can get called multiple times in a row for additional bounty reductions. I can elaborate more on those special conditions in a PM if you wish, discussing it here could derail the thread. I've seen my bounty drop from >100 credits to clean via 1 hyperspace animation tunnel and less than 2 hours time passed as a result.

Re: RFC: Bounties and Galcop law

Posted: Mon Jul 16, 2012 1:29 am
by Wildeblood
Switeck wrote:
The problem with doing the bounty reduction just before the shipWillExitWitchspace handler is called is under special conditions the game can't tell that it's NOT about to emerge from witchspace and that handler can get called multiple times in a row for additional bounty reductions. I can elaborate more on those special conditions in a PM if you wish, discussing it here could derail the thread. I've seen my bounty drop from >100 credits to clean via 1 hyperspace animation tunnel and less than 2 hours time passed as a result.
I'm assuming your "special conditions" is a euphemism for scripting chains of wormholes to guide the player ship to a specific destination? In which case it's the scripter's responsibility to store and restore/adjust the bounty before and after.

Re: RFC: Bounties and Galcop law

Posted: Mon Jul 16, 2012 4:14 am
by Switeck
Wildeblood wrote:
I'm assuming your "special conditions" is a euphemism for scripting chains of wormholes to guide the player ship to a specific destination? In which case it's the scripter's responsibility to store and restore/adjust the bounty before and after.
Yes, pretty much. :mrgreen:

Re: RFC: Bounties and Galcop law

Posted: Mon Jul 16, 2012 4:30 am
by SandJ
Switeck wrote:
Wildeblood wrote:
I'm assuming your "special conditions" is a euphemism for scripting chains of wormholes to guide the player ship to a specific destination? In which case it's the scripter's responsibility to store and restore/adjust the bounty before and after.
Yes, pretty much. :mrgreen:
But if the bounty is halved with each jump, and this chain of wormholes is a device for making a series of jumps automatically, then isn't it valid that it would effectively eliminate one's bounty as a bonus?

Edit: What follows is a load of old toffee, since I mixed up hours and days. I need to spend less time posting crud on here and more time playing the game.

The real problem is that the reduction in bounty is linked to jumps. I suspect that is a work-around for an intended decay of bounty by elapsed time. If one's bounty is based on time, then the handwavium becomes easier to comprehend "A bounty is a time-bound punishment; keep your nose clean and it goes away with time.") Then a 7 LY jump (49 days) would have more effect one one's bounty than a 2 LY jump (4 days). So, the further one jumps from a system, the more one's bounty goes down, which kind of "feels" right.

A reduction in one's bounty of the 49th root of 0.5 per day (= multiplied by 0.985853) would have a similar effect.

That is, if each midnight one's bounty goes down by 1.5%, after about 46 days ones bounty will be halved.

Perhaps, making the rule "Ones bounty goes down by 2% per day" would be a good compromise; it would halve every 35 days (5 weeks) which equates to a 5.8 LY jump. So a reasonable length jump will halve one's bounty - and require one to get more fuel - whereas a 1.2 LY jump will have hardly any effect at all and would need to be done over 20 times to get the same reduction in bounty.

A side effect of a time-based bounty reduction is that buying expensive equipment, while docked, will also erode the bounty slightly as the time passes when equipment is installed. But you can't break many laws if you stay docked anyway!

Re: RFC: Bounties and Galcop law

Posted: Mon Jul 16, 2012 4:56 am
by Wildeblood
SandJ wrote:
The real problem is that the reduction in bounty is linked to jumps. I suspect that is a work-around for an intended decay of bounty by elapsed time.
And the rest of what SandJ wrote. Put him* in charge of this aspect of Oolite.

* or her, or them?

Re: RFC: Bounties and Galcop law

Posted: Mon Jul 16, 2012 7:07 am
by cim
SandJ wrote:
The real problem is that the reduction in bounty is linked to jumps. I suspect that is a work-around for an intended decay of bounty by elapsed time. If one's bounty is based on time, then the handwavium becomes easier to comprehend "A bounty is a time-bound punishment; keep your nose clean and it goes away with time.") Then a 7 LY jump (49 days)
49 hours.

I think of them as attempts to simulate with one number both space and time related bounties. Go well away from the scene of the crime and unless you were particularly notorious it won't have been filed out here. (Galactic jumps being a special case of this) Come back later and, well, Galcop's bounty budget is limited, so they've reassigned your bounty to more active criminals in the sector.

Now that in Oolite jumps take a specified amount of time, the clock is displayed, and jump times are non-linear, it's easy to find a loophole in that.
SandJ wrote:
That is, if each midnight one's bounty goes down by 1.5%, after about 46 days ones bounty will be halved.
Bounties are integer maths, so there will also be a minimum reduction of 1. If you're applying relatively small and frequent cuts this will trim the bounty quite fast.

Probably the easiest way to implement this would just be to halve at each midnight (24 hours ~ 4.9LY). Easy enough to do in an OXP, though it reminds me that I intended to stick a "newDay" world script event in to save messing around with timers or similar.

Re: RFC: Bounties and Galcop law

Posted: Mon Jul 16, 2012 11:07 am
by Pleb
El Viejo wrote:
Disembodied wrote:
Maybe there needs to be a new AI? A "fullPirate" or something? Flies like a trader, responds to attack like a pirate?
Second that!
I have in my game a modified version of the AI from total patrol that mixes elements of the Police AI from this OXP with that of the stock Pirate AI so that Pirates will fly around rather than lurk in areas waiting for people. Seems to increase the chances of encountering Pirates even more so, especially when Deep Space Pirates is also installed.

Re: RFC: Bounties and Galcop law

Posted: Mon Jul 16, 2012 5:34 pm
by cim
Wildeblood wrote:
I know the bounties you get for attacking police are very broken. If you accidentally ping a police ship with your laser, your best course of action is then to turn arsehole and finish it off cold-bloodedly, because your bounty doesn't increase after the first accidental hit, but if you don't finish it off it will chase you remorselessly. That's broken. Unless the design intention is to lure the player into a life of crime. (In which case, why the rapidly decaying bounties?)
This is a tricky one. There's no way with bitwise OR to split a bounty of 64 credits into smaller bounties, so if destroying a police ship was kept at 64 (which seems reasonable to guarantee instant fugitive status and to make it quite likely that they'll still be a fugitive after one halving) making the bounty for attacking the police smaller than 64 would make the resulting bounty for destroying the police larger.

That's perhaps not a bad thing, of course.
El Viejo wrote:
Disembodied wrote:
Maybe there needs to be a new AI? A "fullPirate" or something? Flies like a trader, responds to attack like a pirate?
Second that!
Probably if offenders didn't actually make distress calls in the first place, you wouldn't notice the difference between a "fullPirate" and an Offender trader (until it started dumping cargo while under attack, which doesn't seem unreasonable for the occasional desperate pirate with a full hold).

Since no-one listens to offenders calls anyway (except the player, who is usually the one doing the shooting in this scenario), it shouldn't make any difference to suppress them.

Re: RFC: Bounties and Galcop law

Posted: Mon Jul 16, 2012 8:47 pm
by Disembodied
cim wrote:
This is a tricky one. There's no way with bitwise OR to split a bounty of 64 credits into smaller bounties, so if destroying a police ship was kept at 64 (which seems reasonable to guarantee instant fugitive status and to make it quite likely that they'll still be a fugitive after one halving) making the bounty for attacking the police smaller than 64 would make the resulting bounty for destroying the police larger.

That's perhaps not a bad thing, of course.
Might it be possible to make the first X amount of damage inflicted by a player on a police ship (where X is a suitably small number) result in a broadcast warning along the lines of "{playerShip}, hold your fire, dammit!", "{playerShip}, are you blind? Press that trigger again and you're vapour!", "Back off, {playerShip}! This is your first and final warning!", etc., so that accidental hits don't immediately result in e.g. the Viper breaking off from attacking the Thargoid you were both shooting at, and attacking you instead?
cim wrote:
Probably if offenders didn't actually make distress calls in the first place, you wouldn't notice the difference between a "fullPirate" and an Offender trader (until it started dumping cargo while under attack, which doesn't seem unreasonable for the occasional desperate pirate with a full hold).

Since no-one listens to offenders calls anyway (except the player, who is usually the one doing the shooting in this scenario), it shouldn't make any difference to suppress them.
I think a "fullPirate" should stick up for themselves a bit more ... mind you, so should some traders. Maybe there could be an "aggressiveTrader" AI that fights back? "fullPirates" could use the same AI ... combined with some rear lasers it could make player piracy less of a turkey shoot.

Re: RFC: Bounties and Galcop law

Posted: Mon Jul 16, 2012 8:53 pm
by Cody
If there was a fullPirate AI, it should avoid main stations like the plague - rock hermits or a jump-out should be the only options.

Re: RFC: Bounties and Galcop law

Posted: Mon Jul 16, 2012 9:12 pm
by Switeck
Disembodied wrote:
Maybe there could be an "aggressiveTrader" AI that fights back? "fullPirates" could use the same AI ... combined with some rear lasers it could make player piracy less of a turkey shoot.
Switeck's Shipping has uncommon but very aggressive traders that go out of their way to attack pirates. There are other AI.plist templates, but none suitable yet for "fullPirates" that wander around the space lanes looking for victims.

Re: RFC: Bounties and Galcop law

Posted: Mon Jul 16, 2012 9:39 pm
by JensAyton
cim wrote:
This is a tricky one. There's no way with bitwise OR to split a bounty of 64 credits into smaller bounties
Of course, the bitwise OR thing is a hacky optimization for eight-bit systems. It might be more reasonable to use an add-with-cap approach (e.g. a general rule that increasing the bounty by x can never raise it above 2x). I don’t feel strongly about this, but I thought it should be on the table.

Re: RFC: Bounties and Galcop law

Posted: Mon Jul 16, 2012 9:41 pm
by cim
El Viejo wrote:
If there was a fullPirate AI, it should avoid main stations like the plague - rock hermits or a jump-out should be the only options.
The ones generally seen acting like traders are the ones without a witchdrive in the first place (well, or the ones you follow to another system, but sooner or later they'll run out of fuel), and there's no guarantee of a rock hermit existing.

I suppose that could be changed: stick a rock hermit in all systems at coordinates well away from the sun-planet-witchpoint plane - the only reliable way to find it is to wait for a pirate to get full, and see which way they start heading. Of course, rock hermits are very profitable for trading, so guaranteeing one is perhaps too unbalancing there. (Though less unbalancing than the average OXP station...)
Disembodied wrote:
Might it be possible to make the first X amount of damage inflicted by a player on a police ship (where X is a suitably small number) result in a broadcast warning
Easiest would probably be to tie this in to the "change target" routine. The police ship won't necessarily immediately attack the player (or another ship - I'd rather not have this be player-only) if they're already fighting something else. So they can broadcast a warning if they don't start going for their attacker.

If they aren't fighting something else, they'll always start attacking, and how many shots they'll take before getting annoyed is random (so no bored pilots firing the legally permitted number of shots at every Viper that goes past)
Disembodied wrote:
I think a "fullPirate" should stick up for themselves a bit more ... mind you, so should some traders. Maybe there could be an "aggressiveTrader" AI that fights back?
Traders and full pirates already fight back, don't they? Sure, they start running when their energy gets low, but almost everyone does that. The main problem I see with traders against player piracy is that very few trade ships can take a full military laser blast, and that's quick enough that their escorts don't have time to react. The trader gets no advance warning of player attack, and the player won't be dissuaded by a missile that's still 20km away...

Interestingly, traders (and full pirates) will only dump cargo in that situation if it's the player targeting them. I'll experiment with changing that locally, I think.

Re: RFC: Bounties and Galcop law

Posted: Mon Jul 16, 2012 9:49 pm
by Cody
cim wrote:
... the ones you follow to another system, but sooner or later they'll run out of fuel, and there's no guarantee of a rock hermit existing.
Maybe they could sunskim if there are no rock hermits and they need fuel? I like the idea of a rock hermit in every system, well away from the sun-planet-witchpoint plane, btw (I'd expect them to be everywhere, anyway), but agree that it could be a little unbalancing - maybe.