Page 2 of 3
Posted: Wed Oct 21, 2009 11:07 am
by DaddyHoggy
I thought some more about my original thoughts on this theme. After Teorge I also wanted to do something more Ooniversal. Specifically, there are lots of systems that have descriptions that include that the phrase "evil disease" - so what about if, on occasion, these systems were quarantined and you could only trade with them if you had a special visa and/or also bought some expensive de-con equipment (the de-con equipment would have a finite lifetime before it needed replacing or expensive maintenance but the system would pay extremely highly for specially scripted medical supplies to be shipped in while the emergency was on).
[Note: I discussed something similar with Svengali when I was writing the stories for Snoopers - it would make the ideal injection system for additional mission details to be added]
Posted: Sat Oct 24, 2009 3:32 pm
by pagroove
Well permits do not have to last permanently. Somethims they are caused by conflict between 2 planets. Could also be triggered by Snoopers events (idea?)
Situation where a perimit could be issued are: (like mentioned before)
economic blokkade
diplomatic conflict
war
disease
Thargoid incusion
Nature park
Protection of certain population
Trumble infestation
Zero-G championship (to prevent system overcrowding)
Party (like the Reinen Beerfesten)
investigation by GALCOP, Military
Impending NOVA
Meteor disaster
etc.
You name it.
Would be fun is they could be assigned randomly and last for a few player days. Then the dice would be rolled again to see if the situation is getting better or worse(iow the permit stays then)
Posted: Sat Oct 24, 2009 9:43 pm
by DaddyHoggy
pagroove wrote:Well permits do not have to last permanently. Somethims they are caused by conflict between 2 planets. Could also be triggered by Snoopers events (idea?)
Situation where a perimit could be issued are: (like mentioned before)
economic blokkade
diplomatic conflict
war
disease
Thargoid incusion
Nature park
Protection of certain population
Trumble infestation
Zero-G championship (to prevent system overcrowding)
Party (like the Reinen Beerfesten)
investigation by GALCOP, Military
Impending NOVA
Meteor disaster
etc.
You name it.
Would be fun is they could be assigned randomly and last for a few player days. Then the dice would be rolled again to see if the situation is getting better or worse(iow the permit stays then)
Yup, I like 'em all - and I was thinking much the same (great minds and all that!)
Posted: Sun Oct 25, 2009 12:19 pm
by PhantorGorth
pagroove wrote:Well permits do not have to last permanently. Somethims they are caused by conflict between 2 planets. Could also be triggered by Snoopers events (idea?)
My Visa OXP which I am currently coding is an visa engine. You will be able to add as many visas as you like. It will handle the registration and orchestration of them. Currently I am designing it to handle three types of visa:
1) System Visit Visa - Applies to the whole system.
2) Planet Visit Visa - Applies to one of the planets or moons.
3) Ship/Station Permit - Applies to any dockable object.
An OXP could inject a visa into the system by registering the details and registering functions to:
a) Check for availability of the visa. An example would be that the visa is only available to purchase at neighbouring system.
b) Check the player's eligibility and if (s)he violates the terms. An example would be that you are clean and do not increase you legal status whilst in the system.
c) Provide punishment/sanctions to the player for illegal entry or breaching the terms. These could be fines and/or legal status increases or anything you can program in an OXP.
pagroove wrote:Situation where a permit could be issued are:
economic blokkade
diplomatic conflict
war
disease
Thargoid incusion
Nature park
Protection of certain population
Trumble infestation
Zero-G championship (to prevent system overcrowding)
Party (like the Reinen Beerfesten)
investigation by GALCOP, Military
Impending NOVA
Meteor disaster
etc.
You name it.
Most of those scenarios fit into the 3 types I am creating. The few visa/permit types I haven't covered are permits for the vicinity of non-dockable objects or general no fly zones. These would involve periodic checks as to the player's co-ordinates to see if the NFZs are breached. Please note that I going to have to do that for non-main stations anyway so I may add these two types in once I am happy with the above three.
pagroove wrote:Would be fun is they could be assigned randomly and last for a few player days. Then the dice would be rolled again to see if the situation is getting better or worse(iow the permit stays then)
You will be able to disable the visa at any time.
Posted: Mon Jan 25, 2010 10:18 pm
by pagroove
PhantorGorth wrote:pagroove wrote:Well permits do not have to last permanently. Somethims they are caused by conflict between 2 planets. Could also be triggered by Snoopers events (idea?)
My Visa OXP which I am currently coding is an visa engine. You will be able to add as many visas as you like. It will handle the registration and orchestration of them. Currently I am designing it to handle three types of visa:
1) System Visit Visa - Applies to the whole system.
2) Planet Visit Visa - Applies to one of the planets or moons.
3) Ship/Station Permit - Applies to any dockable object.
An OXP could inject a visa into the system by registering the details and registering functions to:
a) Check for availability of the visa. An example would be that the visa is only available to purchase at neighbouring system.
b) Check the player's eligibility and if (s)he violates the terms. An example would be that you are clean and do not increase you legal status whilst in the system.
c) Provide punishment/sanctions to the player for illegal entry or breaching the terms. These could be fines and/or legal status increases or anything you can program in an OXP.
pagroove wrote:Situation where a permit could be issued are:
economic blokkade
diplomatic conflict
war
disease
Thargoid incusion
Nature park
Protection of certain population
Trumble infestation
Zero-G championship (to prevent system overcrowding)
Party (like the Reinen Beerfesten)
investigation by GALCOP, Military
Impending NOVA
Meteor disaster
etc.
You name it.
Most of those scenarios fit into the 3 types I am creating. The few visa/permit types I haven't covered are permits for the vicinity of non-dockable objects or general no fly zones. These would involve periodic checks as to the player's co-ordinates to see if the NFZs are breached. Please note that I going to have to do that for non-main stations anyway so I may add these two types in once I am happy with the above three.
pagroove wrote:Would be fun is they could be assigned randomly and last for a few player days. Then the dice would be rolled again to see if the situation is getting better or worse(iow the permit stays then)
You will be able to disable the visa at any time.
Bump!
Any progress on your 'visa-engine'?
Really like to see some permit systems. Maybe some permit systems must has some benifits (bonuses or special items/missions) to make up for the permit?
Posted: Tue Jan 26, 2010 7:45 am
by PhantorGorth
pagroove wrote:Bump!
Any progress on your 'visa-engine'?
Really like to see some permit systems. Maybe some permit systems must has some benifits (bonuses or special items/missions) to make up for the permit?
Yes I have written nearly all the code (bar a few lines I found I had missed) and I am about to start the final rounds of testing. I have already tested about half of the code but the most important parts of it (i.e. the Oolite callbacks) have yet to be tested.
At 2719 lines (currently) of Javascript it has taken me far longer than I hoped. Learned a lot on the way, mind.
I also have yet to get my head around Javascript closures as I really need to make some of the arrays read only from other OXPs to stop direct overrides of the data structures rather than going via my API. Plus it will help me stop things such as OXP A disabling a visa and then OXP B reinstating it. It really should be that disabling done by an OXP should only be re-enable-able by the same OXP.
Also I need to discuss modifications of PlanetFall with Thargoid so that it can have visa related messages when approaching a planet's surface.
And it is an injection system I will need to write a decent manual for other OXP writers.
So all in all, lots of work yet to do. I will also be looking for testers when I get closer to releasing this beast.
Current Features:
- Each visa can be made up of one or more sub-visas from any of these following categories.
Sub-Visas:- Systems Visas.
Planet/Moon Visas.
Ship Visas - Anything that counts as an Oolite ship including asteroids and stations that can be dockable or not. Also supports multiple configurable shells around a ship where you can trigger user-defined events (usually messages).
Benefits and penalties set by the OXP developer.
Flexible query functions that allow you to search for visas that match various criteria.
Visas and sub-visas and any associated user-functions are replaceable or disable-able and re-enable-able.
All aspects tailorable.
Future Possible Features for Later Versions:
- New Sub-Visa types:
- NFZ (No Fly Zones) Visas - User defines the shape and location of the NFZ in a CSG (Constructive Solid Geometry) way.
General Permits - For user-defined permits such as trade restrictions on certain goods, etc.
Posted: Fri Nov 12, 2010 10:03 am
by Zireael
A fine idea. Has it been done?
Posted: Fri Nov 12, 2010 8:11 pm
by PhantorGorth
The code is largely done but it isn't complete. The system visas is the most tested and that seems ok. I am at the point of creating an example station/ship visa to test that part. The part not touched yet is the Planet visas bit as that will require changes to PlanetFall. I will need to discuss that Thargoid before that can be complete.
Regards,
Phantor Gorth
Posted: Fri Nov 12, 2010 9:15 pm
by Thargoid
I'm not sure this is something I want in my own personal ooniverse, but I have no problem to tweak PF to play nicely with what's under development for those who do.
I await the call once the scripting is at a suitable level where my involvement is needed.
Posted: Fri Nov 12, 2010 10:47 pm
by PhantorGorth
@Thargoid
Just to forewarn you that I am not looking for huge changes just a way to let PlanetFall know that that the player can not land at a particular planet or moon. (Likely an added property to the planet object); a way to specify a text message to display when the player is told they are barred. (Again likely to be another planet object property that PlanetFall checks for and if missing or empty display a default message). And obviously have PlanetFall react to these settings. (Oh the barring wouldn't actually stop you landing though. If you land it would up to the other OXP to decide what to do.)
This could then be used by Visas and also by other OXPs too.
Regards,
Phantor Gorth
Posted: Sat Nov 13, 2010 1:32 am
by Switeck
In a far lesser role, how hard would it be to get a fine for "scrapping paint" when docking at the station?
Posted: Sat Nov 13, 2010 9:48 am
by Thargoid
PhantorGorth wrote:@Thargoid
Just to forewarn you that I am not looking for huge changes just a way to let PlanetFall know that that the player can not land at a particular planet or moon. (Likely an added property to the planet object); a way to specify a text message to display when the player is told they are barred. (Again likely to be another planet object property that PlanetFall checks for and if missing or empty display a default message). And obviously have PlanetFall react to these settings. (Oh the barring wouldn't actually stop you landing though. If you land it would up to the other OXP to decide what to do.)
This could then be used by Visas and also by other OXPs too.
Regards,
Phantor Gorth
Doesn't sound anything too difficult (in the way PF interacts with things like Frame's Solar System (should that ever go further) or Cheyd's SR2.
As I said, get your coding to a beta-stage and then let me have a look at it. I'll adjust PF accordingly.
Posted: Sat Nov 13, 2010 11:12 am
by Kaks
Switeck wrote:In a far lesser role, how hard would it be to get a fine for "scrapping paint" when docking at the station?
Not too terribly hard!
The normal collision detection doesn't apply to docking tunnels, but if all else fail you can create a custom player ship script that will check how close you are to the nearest station when taking scrape damage. If within 1000m of the station(or more - you can always check the role/type of station, and adjust the distance depending on the size of known station type) you can set a variable that represents a fine for dangerous driving. Once docked, you'll need a mission screen to pop up if the player had a fine, etc...
The only 'tricky' part is to create the oxp in such a way that it checks for player.ship.script and replace whatever it finds with the appropriate code: something similar to the console customisation example shown in this page:
http://wiki.alioth.net/index.php/Debug_OXP
Anyway, to get the most out of Oolite, oxp wise, you really need js!
Posted: Sat Nov 13, 2010 11:47 am
by Eric Walch
Kaks wrote:The normal collision detection doesn't apply to docking tunnels,
Shall I also add the collision handler in the "shipIsInDockingCorridor" routine? I think it was just missed because that was an exception by simulating a fake collision by bypassing the regular routine and should be there also.
Posted: Sat Nov 13, 2010 12:34 pm
by Kaks
Eric, sounds like a plan!
In that case, in 1.75 it's going to be really, really easy to add a fine if you scrape the tunnel!