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

Restrict entry to Rondel system #5095

Merged
merged 8 commits into from
Apr 29, 2021
Merged

Restrict entry to Rondel system #5095

merged 8 commits into from
Apr 29, 2021

Conversation

WKFO
Copy link
Contributor

@WKFO WKFO commented Dec 27, 2020

I know the title makes it sound stupid (why would you stop the players from entering a system?), but hear me out. I noticed a red spot on the sector map and found this Haber system in the middle of SolFed territory.
rondel1

-- Copyright © 2008-2020 Pioneer Developers. See AUTHORS.txt for details
-- Licensed under the terms of the GPL v3. See licenses/GPL-3.txt

-- example of a custom system directly specifying a faction
local s = CustomSystem:new('Rondel',{'STAR_M'})
	:faction('Haber Corporation')
	:short_desc('Military Listening Post')
	:long_desc([[A hidden dagger pointed at the heart of the Federation]])
	:seed(1824351)

s:add_to_sector(-1,6,2,v(0.007,0.260,0.060))

It looks like someone made this system just as a custom system example (no starports, no defined planets etc.), but I thought it could use more than just a fancy description... some more excitement. Which brings me to this PR:

Upon entering the system, 7 police vehicles appear near the player and warn them to leave. They are quite paranoid too:

  • They allow 2 (EDIT: now 10) minutes to ships with civilian hyperdrives, 1 (EDIT: now 5) minute(s) to those with military hyperdrives. (Because military technology raises more suspicion, and they become less tolerant) If you don't leave, you get attacked.
  • Jettisoning anything or firing a weapon triggers hostility, even if you don't hit the police.
  • Police in this system use 2MW weapons as opposed to 1MW used by police patrols in other systems.

As for the code, it has been almost entirely copied from the PolicePatrol module, and edited.

@impaktor
Copy link
Member

I like the direction, however, I wonder:

  • having the 1 minute vs. 2 minute distinction will not be noticeable to a player that's not reading the source code, I think.
  • ...nor the pulse lasers unless they have different colour (do they?). (Maybe lasers? or some weapon that look distinctly different)
  • should it even be police? How about "haber military"?
  • when we put in a restriction for the player, there should be some way the player can defeat it, and also understand how to (compare with reputation system & kills, player is informed they're lacking in one/both to sign up for a mission).
  • Thus, I think there should be a way to gain access to the system, e.g. a permission-system (like in Frontier), or maybe Military drive makes them think you're one of them? The latter would be trivial compared to the former, to implement.
  • You could add a rumour/traveller's tale to the advice module that says something about "Haber has an outpost, but I once sneaked in there by using a military drive, but it was worth it, since I could buy plenty of slaves legally over the market"
  • perhaps it should go in the same folder as police patrol? (but still have separate language module?) ping @Web-eWorks, or don't mention "Rondel" explicitly in the module name, as this could be flavoured later on to include some other system as well.

Those are my initial thoughts. I'd stress adding hit to Advice module, and some loophole for player to be granted access. Also, making it into the system, there should be some reward, like cheap slaves. I know slavery is illegal in Haber, but I'd suggest we change it, they're supposed to be "evil", so...

local Lang = require 'Lang'
local Game = require 'Game'
local Space = require 'Space'
local cargo = require 'Commodities'
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

looks to be unused.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah, I will take care of that. Thanks.

Copy link
Contributor Author

@WKFO WKFO Dec 27, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I happen to be using that, actually.

@WKFO
Copy link
Contributor Author

WKFO commented Dec 27, 2020

In order, replying to @impaktor ;

  • You are probably right.
  • 2MW lasers have different color and firing rate.
  • Could be.
  • I thought about that, but there is nothing in the system yet. Maybe there should be something worth inside first.
  • Yep.
  • Good idea.
  • I had a hard time deciding where to put the files. I was about to create a "custom systems" folder, but then decided against that. I'd appreciate advice.

@bszlrd
Copy link
Contributor

bszlrd commented Dec 27, 2020

Isn't 2 minutes a bit too short? Maybe 5 and 15?

@impaktor
Copy link
Member

OK, I assumed there was an inhabited system.

If there was, response time could be something with the distance between player and main planet, or similar.

@Web-eWorks
Copy link
Member

Having not looked at code yet (on mobile), I would recommend making this module completely independent of the actual system. I will look into adding a permit system to the Character framework which should make this easy.

Regarding the gameplay implications, I'd recommend extending the time to five minutes for all drives and making sure that time acceleration doesn't adversely impact the experience (possibly stop time accel when receiving the message).

Organization wise, I'd recommend adding this to the PolicePatrol module folder and associated language resource - there's no limitation that requires only one lua file per module. (And with the require '.name' syntax it's easy to work with.)

@WKFO WKFO marked this pull request as draft December 27, 2020 17:50
@fluffyfreak
Copy link
Contributor

fluffyfreak commented Dec 28, 2020

I have nothing to say about the code/lcoation/etc but I do like the idea. Perhaps in future this can be modified for any restricted system which could just be a flag on the system itself.

For now I'd be happy to have it be specific to Rondel, then change it in when the time comes.

@WKFO
Copy link
Contributor Author

WKFO commented Dec 28, 2020

Moved Rondel.lua to PolicePatrol directory; increased time to 10 mins for civilian drives, 5 mins for military drives.

@WKFO
Copy link
Contributor Author

WKFO commented Dec 29, 2020

Added some rumour/backstory about Rondel to the advice module.

@WKFO WKFO marked this pull request as ready for review December 29, 2020 18:00
@WKFO
Copy link
Contributor Author

WKFO commented Jan 2, 2021

Fun fact, it is humanly possible to defeat all 7 ships (yes, I was actually trying that) and brute force your way into the system with a steady hand, some luck and the somewhat humble ship below:
screenshot-20210102-235535
screenshot-20210102-235519
(Last two ships don't generate messages on death, and yes that's on purpose.)

Originally I was just planning to close off the system for this PR, but since I discovered that 7 police vehicles are not undefeatable, things changed. If someone other than me actually went there and defeated all the guards for nothing in return, I guess they would be pretty pissed. So I added a prize - the next time they land on a spaceport after their victory, a special BBS entry is created.

over_here
dialog

An undercover SolFed agent asks the player for the data about Rondel on their ship's computer and gives them 250,000 credits in return (which I absolutely don't think is a ridiculous amount, given the challenge of fighting 7 ships simultaneously). This is a one time thing per save file and doing the same thing again doesn't give any more credits.

Since it has become more complex than just keeping people away from a system, I moved the module back to its own folder (it is more than a police patrol, still with room for more features). It can be further expanded by adding actual points of interests to the system itself, and later, creating a permit system once there is something worth inside. If more modules for different star systems are created, the folder can be renamed accordingly, to house all custom system modules.

(Not planning any of these for this PR.)

ask

Copy link
Member

@Web-eWorks Web-eWorks left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looking good and based on prior discussion I think this is getting ready to merge. I only have one change request, and that is to check for Rondel using a SystemPath instead of a name that can easily be duplicated in procgen.

data/modules/Rondel/Rondel.lua Outdated Show resolved Hide resolved
data/modules/Rondel/Rondel.lua Show resolved Hide resolved
@Web-eWorks Web-eWorks merged commit e7bebe9 into pioneerspacesim:master Apr 29, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants