endless-sky
endless-sky copied to clipboard
Smuggling/Illegal Outfits overhaul
Problem Description
The existing system of scanning for illegal outfits is fairly brute force and doesn't give the player much control over avoiding or dealing with it. Increasing player agency can be resolved by taking a comprehensive set of changes, as outlined below:
This issue will also document related changes to smuggling gameplay to help make it more robust and flavorful.
Related Issue Links
Issue #4240 Change Incoming Scan Notification, opened by @Zitchas #6456 - "Alerts" feature to make fleeing from the ISP more interesting.
Related PRs:
- [ ] #6376 - Handles new surrender/bribe/flee mechanic and tracking of contraband by government.
- [x] #6364 Detection chance overhaul - handles stats to be used by new/tweaked smuggling outfits.
- [x] #6361 Will be needed for smooth integration of new illegal outfits that serve as commodities
- [ ] #6404 Handles variable pricing of outfits so that we don't need to use convoluted missions.
- [x] #6407 Tracks illegality by government, so that the Remnant won't fine you for selling untaxed liquor.
- [ ] #9714
Desired Solution
1) The Navy should no longer scan ships.
Because Navy ships constitute a large set of all traffic, and all navy ships have the scanning personality, it's an overwhelming blockade. Removing the scanning personality from the Navy will make scanning less "force of nature that you can only brace yourself for" and more "sometimes surprising event that creates interesting choices and gameplay".
2) Rather, an Interstellar Police (ISP) faction should be implemented that monitors Republic territory for smugglers.
It would spawn comparatively rarely to the Navy, and use lighter craft more suitable for interception and interdiction. The benefit of this faction being distinct from the Navy is that we can still use Navy fleets to occupy combat roles while reducing the overall scan density in any given system. Likewise, certain systems can have disproportionately high scan density by making it more heavily patrolled by police.
Finally, reputation with the ISP (so long as it's greater than -100) should tick back towards zero every week, representing the heat dying down. Between -100 and -10, fleets will spawn that attempt to track the player and scan them.
3) When scanned and found in violation, a hailing panel should be opened up. (#6376 )
Here's a mockup of what I think the pop-up should look like, mimicking the existing hailing panel.
Police Cruiser "Big Iron" is hailing you
--------------------------------------------------------------------------------------------------------------
You've been detected carrying illegal cargo and have been issued a fine of <fine> credits.
Dump your cargo immediately or we'll be forced to disable and board your ship.
[Dump Cargo] [Offer Bribe] [Flee!]
Dumping cargo purges all illegal cargo from your hold and incurs a fine, as well as minor reputation loss with the ISP. Bribery allows you to keep your cargo, and makes ISP fleets currently in-system ignore you. No fine is issued. Fleeing immediately renders ISP and Navy ships in the system hostile, and incurs a decent reputation loss with ISP and the Republic. No fine is issued.
4) Fines should be calculated by [outfit quantity] x [illegal value] (#6376 )
This is needed so that you can't still make a profit by simply pilling on inordinate amounts of contraband and taking a fine for a single unit of said contraband
5) Illegality should be tracked by government and defined in the government's data block. (#6314 )
An example syntax for data could be:
government "ISP"
bribe 0.6
illegal
"designer drugs" 1200
"counterfeit credsticks" 30
"coreshine" 500
atrocity
"chemical warhead"
government "Remnant"
bribe 0
illegal
"chemical warhead" 0
Under this example the ISP requires 60% of the fine value as a bribe to ignore your crime, and will attack on sight if you're found carrying chemical warheads. The Remnant, meanwhile, accept no bribes, and simply require that you dump any chemical warheads at their border or be fired upon - but they won't issue a fine if you comply. This has the benefit of not cluttering the outfitter panel with legal information, and runs no risk of spoiling the existence of factions beyond those discovered. Rather, a list of customs laws can simply be added to the logbook upon discovery of a new faction.
Alternative Approaches
Rather than have an entirely new government and attendant fleets, we could create some sort of "Subfleet" or "Fleet variant" mechanic. When a fleet is spawned, the game would check to see if there are any variant fleets with that same name and spawn them with some sort of weighting.
Under such a system not all Navy fleets would have the Scanning personality, but only a subset of them, and which exact fleet (and personalities) are spawned when a Navy fleet is created would be random.
This has the benefit of being much more flexible for future content - like creating merchants that spawn from the same pool but belong to different factions - though one of the main benefits of a dedicated police faction is visual seperation so that you know exactly which ships in a system might scan you.
Additional Context
This is supporting an expanded smuggling system to be implemented as part of the pirate campaign. Smuggling system branch can be found here @quyykk has expressed interest in implementing the necessary code changes once their schedule opens up a bit.
#5141 should have appeared in your research
#5141 should have appeared in your research
Sweet, looks like that's half the work already done.
I'd also like to see scan chance overhauled like this.
Edit: Quyykk's got a fork going where scans work this way, so testing time!
I like the idea of the ISP. Also bribing should have a high chance of not working, maybe depending on what the cargo is. Could you also get it in good with the ISP by reporting illegal smuggling and the like? Just a thought ;).
Police Splinter
just thought I'd post the ISP ships that i've been working on
I really like those, a real Euro police vibe, can we have flashing lights?
I really like those, a real Euro police vibe, can we have flashing lights?
Ideally, yes! I'd have to ask a coder for help, but it would be great if we could have a "shipstates" tracker that can toggle sprites depending on aggro state, among other things.
I don't want them to have flashing lights just by default.
Here are some example logbook entries for illegal goods and the missions which trigger them.
mission "Legal Code: Chemical Warheads"
invisible
landing
source "Smuggler's Den"
on offer
log "Republic Law" "Chemical Warheads" `Excerpted from Republic customs code, Section A: Absolutely Forbidden Cargo`
log "Republic Law" "Chemical Warheads" `... possession of items defined under Article 2, including but not limited to CHEMICAL WARHEADS, cobalt-doped THERMONUCLEAR DEVICES, and other WEAPONS OF MASS DESTRUCTION shall be considered grounds for immediate seizure by Naval Forces, warranting actions including but not limited to the full destruction of transporting vessel(s) and personnel.`
mission "Legal Code: Coreshine"
invisible
landing
source
attributes "smuggling port"
on offer
log "Republic Law" "Coreshine" `Excerpted from Republic customs code, Section D: Tax Evasion and Fraud`
log "Republic Law" "Coreshine" `Upon failure to provide proof of payment for duties on cargo, inspecting officers are authorized to immediately collect UNPAID TAXES and issue a FINE of up to TWENTY TIMES the value of UNPAID TAXES. If the purchase price of the cargo is unknown, officers are authorized to collect taxes according to prices as detailed in TABLE IV.`
log "Republic Law" "Coreshine" ` Table IV: Taxes to be levied on bulk commodities`
log "Republic Law" "Coreshine" ` ...`
log "Republic Law" "Coreshine" ` Alcohol, Ethyl: 400c/ton`
log "Republic Law" "Coreshine" ` ...`
log "Republic Law" "Coreshine" `(I should expect to pay 8400 credits per ton if I'm caught smuggling untaxed liquor.)`
mission "Legal Code: Dragon's Teeth"
invisible
landing
source "Skymoot"
on offer
log "Republic Law" "Dragon's Teeth" `Excerpted from Republic customs code, Section C: Objects of Illegal Provenance`
log "Republic Law" "Dragon's Teeth" `TRANSPORT, USE, or POSSESSION of body parts from critically PROTECTED or ENDANGERED ANIMALS shall warrant fines as detailed in TABLE I. Items on TABLE II may be considered EXEMPT and GRANDFATHERED provided the accused can provide proof of production prior to the ratification of P.R.6298.`
log "Republic Law" "Dragon's Teeth" ` Table I: Fines to be imposed on poached animal parts`
log "Republic Law" "Dragon's Teeth" ` ...`
log "Republic Law" "Dragon's Teeth" ` Widow Antelope, Horns: 200c/rack`
log "Republic Law" "Dragon's Teeth" ` Widow Antelope, Fangs: 10,000c/tooth`
log "Republic Law" "Dragon's Teeth" ` Widow Antelope, misc: 500c/ton`
log "Republic Law" "Dragon's Teeth" ` Kornepheran Beaversquid, Appendages: 400c`
log "Republic Law" "Dragon's Teeth" ` Kornepheran Beaversquid, misc: 1000c/ton`
log "Republic Law" "Dragon's Teeth" ` Skymoot Dragon, Teeth (intact): 3000c/tooth`
log "Republic Law" "Dragon's Teeth" ` Skymoot Dragon, Teeth (powdered): 150,000c/ton`
log "Republic Law" "Dragon's Teeth" ` ...`
log "Republic Law" "Dragon's Teeth" `(Powdered dragon teeth are usually sold in tenth-tons, so I should expect to pay 15,000c per jar I'm caught with.)`
Had a discussion with @Amazinite and @Saugia, general ideas are:
- Skip the ISP. Instead, rework existing Navy enforcement so that they're less scan-happy or implement a new Navy fleet whose only job is to scan, allowing us to control scan density on a per-system basis.
- Highlight contraband in red on the boarding panel, so that you know you're stealing potentially dangerous-to-carry goods.
- In the ship info and cargo panels, highlight any contraband in red. Alternative: add a warning icon that you mouse over for a tooltip.
- We need to implement some sort of method for aborting a mission by dumping mission cargo, rather than only being able to do it the other way around
- Cargo hot potato to avoid scans? This would make it so that you don't fail the mission upon dumping the cargo, only upon it being destroyed or abandoned. (Low priority, or something that should emerge from other features.)
- Failing smuggling missions too many times gives you a mission where you have to pay back your debt before a deadline expires, or you get killed by a hitman (or something).