Optional Equipment & Passenger Berths
Moderators: winston, another_commander, Getafix
Optional Equipment & Passenger Berths
I'm just designing a new player ship, which I want to set to not being able to install passenger berths (it would potentially screw up another feature it has). However I don't seem to be able to block the passenger berths from appearing in the available equipment (F3 screen) list?
I thought that if I ensure EQ_PASSENGER_BERTH was not present in either standard or optional equipment in shipyard.plist then I wouldn't be offered them in the screen. However on testing I still seem to be offered them for sale despite the shipyard.plist setting?
It seems to work with the large cargo bay (which I also want to restrict), but not with passenger berths. Am I misunderstanding how things work here, or is there a glitch?
I thought that if I ensure EQ_PASSENGER_BERTH was not present in either standard or optional equipment in shipyard.plist then I wouldn't be offered them in the screen. However on testing I still seem to be offered them for sale despite the shipyard.plist setting?
It seems to work with the large cargo bay (which I also want to restrict), but not with passenger berths. Am I misunderstanding how things work here, or is there a glitch?
My OXPs via Boxspace or from my Wiki pages .
Thargoid TV
Dropbox Referral Link
Thargoid TV
Dropbox Referral Link
- Eric Walch
- Slightly Grand Rear Admiral
- Posts: 5536
- Joined: Sat Jun 16, 2007 3:48 pm
- Location: Netherlands
Re: Optional Equipment & Passenger Berths
When you look in the equipment.plist, you'll see that the EQ_PASSENGER_BERTH is defined as "available_to_all". Such equipment is: available to all. Only equipment that is not available to all can be differentiated by adding equipment entries for specific ships.Thargoid wrote:I thought that if I ensure EQ_PASSENGER_BERTH was not present in either standard or optional equipment in shipyard.plist then I wouldn't be offered them in the screen. However on testing I still seem to be offered them for sale despite the shipyard.plist setting?
UPS-Courier & DeepSpacePirates & others at the box and some older versions
- Smivs
- Retired Assassin
- Posts: 8408
- Joined: Tue Feb 09, 2010 11:31 am
- Location: Lost in space
- Contact:
I might be wrong, but if you specify a max-cargo (shipdata.plist) of less than 5 I believe this should stop passenger berths being offered, as there is simply not enough room for one...see ships like the Adder (player ship has max cargo of 2), or the Asp with zero cargo capacity. Neither can have a passenger berth.
It depends whether such a tiny capacity is acceptable in your ship.
It depends whether such a tiny capacity is acceptable in your ship.
Commander Smivs, the friendliest Gourd this side of Riedquat.
Re: Optional Equipment & Passenger Berths
I see what you mean. But this seems a very poor way of doing things.Eric Walch wrote:When you look in the equipment.plist, you'll see that the EQ_PASSENGER_BERTH is defined as "available_to_all". Such equipment is: available to all. Only equipment that is not available to all can be differentiated by adding equipment entries for specific ships.
A possible better way would be to have a "forbidden equipment" tag in shipyard.plist (as I already suggested elsewhere), so equipment has to be explicitly forbidden to be unusable with a ship rather than optionally available to it (and basically if any equipment exists that isn't in the forbidden list, it is then treated in the way way that optional equipment currently is - same principle but defaulting the other way).
Then the available to all tag is redundant, and it also has the added advantage that OXP equipment can be much more easily worked with (currently it is impossible to have OXP equipment not available to an existing ship, at least without major workarounds).
Or at the least an equipment-overrides.plist file, but that could get risky. Or if an already installed piece of equipment lists something else as incompatible, then that item doesn't show up for offer on the list (at the moment it only works the other way around, nothing in the list will have an incompatible tag with anything already installed).
And for the other thought - I want the ship to have cargo capacity, but not passenger capacity. I have a way to do it through scripting, but having played with shipyard.plist and equipment.plist for most of the week the current set-up seems very ripe for fixing up.
My OXPs via Boxspace or from my Wiki pages .
Thargoid TV
Dropbox Referral Link
Thargoid TV
Dropbox Referral Link
- Smivs
- Retired Assassin
- Posts: 8408
- Joined: Tue Feb 09, 2010 11:31 am
- Location: Lost in space
- Contact:
Just a thought but OXP .plists override core .plists, don't they? If you included an equipment.plist in your OXP which was a duplicate of the core one but with the exception being that the passenger berth was set to
this would disable this 'feature'. As the core ships that can have a berth will (I assume) have this specified in the core shipyard.plist anyway, as should OXP ships, it shouldn't make any difference in practise.
Code: Select all
available_to_all = false
Commander Smivs, the friendliest Gourd this side of Riedquat.
I had the same thought - certainly something to test. But I'mn a bit reluctant to do that in case it generates a bad interaction between another OXP and the trunk game as a result.
My OXPs via Boxspace or from my Wiki pages .
Thargoid TV
Dropbox Referral Link
Thargoid TV
Dropbox Referral Link
- Commander McLane
- ---- E L I T E ----
- Posts: 9520
- Joined: Thu Dec 14, 2006 9:08 am
- Location: a Hacker Outpost in a moderately remote area
- Contact:
However, if this last assumption should prove to be false, no player ship would have the ability to mount a passenger berth anymore.Smivs wrote:Just a thought but OXP .plists override core .plists, don't they? If you included an equipment.plist in your OXP which was a duplicate of the core one but with the exception being that the passenger berth was set tothis would disable this 'feature'. As the core ships that can have a berth will (I assume) have this specified in the core shipyard.plist anyway, as should OXP ships, it shouldn't make any difference in practise.Code: Select all
available_to_all = false
And creating a slighly altered general equipment.plist would be bad practice anyway. Imagine another OXP-author wanted to make a slight change to another piece of equipment. So he would make a duplicate of the original and only alter one other value. Already there would be an unresolvable(!) and for the lay-person unrecognizable clash between the OXPs. Bad idea.
- Smivs
- Retired Assassin
- Posts: 8408
- Joined: Tue Feb 09, 2010 11:31 am
- Location: Lost in space
- Contact:
To be honest I thought that this was probably not a good idea when I suggested it
However this does seem an odd aspect of the equipment.plist. The ship's ability to have a passenger berth is in the shipyard.plist so does this really have to be specified in the equipment.plist as well. Also the 'available_to_all' is not strictly accurate as some ships (like the Adder and Asp I cited) can't have one.
Does the equipment.plist need a re-think in this area?
However this does seem an odd aspect of the equipment.plist. The ship's ability to have a passenger berth is in the shipyard.plist so does this really have to be specified in the equipment.plist as well. Also the 'available_to_all' is not strictly accurate as some ships (like the Adder and Asp I cited) can't have one.
Does the equipment.plist need a re-think in this area?
Commander Smivs, the friendliest Gourd this side of Riedquat.
I would agree that it does. I really don't like available_to_all, as it makes manipulating OXP equipment and ships a real PITA sometimes.
Sadly I think to do things properly I'm going to have to redefine the passenger berth entry to at least include an incompatible with line (this would be much easier with an override plist!). I can safety net it using a check when equipment is bought, but that's a bit of a fudge.
Sadly I think to do things properly I'm going to have to redefine the passenger berth entry to at least include an incompatible with line (this would be much easier with an override plist!). I can safety net it using a check when equipment is bought, but that's a bit of a fudge.
My OXPs via Boxspace or from my Wiki pages .
Thargoid TV
Dropbox Referral Link
Thargoid TV
Dropbox Referral Link
- Commander McLane
- ---- E L I T E ----
- Posts: 9520
- Joined: Thu Dec 14, 2006 9:08 am
- Location: a Hacker Outpost in a moderately remote area
- Contact:
Indeed, available_to_all can be a PITA for a scripter, however it is the only way of making new equipment available to existing ships. The alternative would be to edit and re-publish all shipyard.plists whenever a new piece of equipment is created by OXP. Obviously impossible.
But in principle I agree that the system isn't flexible enough. As it is now we as OXPers only have the choice between making a piece of equipment for one ship (or a couple) in our current OXP via shipyard.plist, or to every player ship without exception through the available_to_all flag.
If you want to be more selective, you would have to use a shipyard-override.plist and edit the optional_equipment-arrays of all existing ships you want to bless with your new equipment. Not very practical, because (1) you would have to c&p them from all existing places, and (2) that wouldn't help for upcoming ships.
The problem is that I don't see a practicable way for doing it.
But in principle I agree that the system isn't flexible enough. As it is now we as OXPers only have the choice between making a piece of equipment for one ship (or a couple) in our current OXP via shipyard.plist, or to every player ship without exception through the available_to_all flag.
If you want to be more selective, you would have to use a shipyard-override.plist and edit the optional_equipment-arrays of all existing ships you want to bless with your new equipment. Not very practical, because (1) you would have to c&p them from all existing places, and (2) that wouldn't help for upcoming ships.
The problem is that I don't see a practicable way for doing it.
- Commander McLane
- ---- E L I T E ----
- Posts: 9520
- Joined: Thu Dec 14, 2006 9:08 am
- Location: a Hacker Outpost in a moderately remote area
- Contact:
By the way: in case of EQ_PASSENGER_BERTH there is the question why it has the available_to_all in the first place. For the original set it is defined in shipyard.plist, so that should be standard for OXP ships as well. In other words: the ship creator should be solely responsible for deciding whether his ship can carry a berth or not. I would vote for removing the available_to_all from the equipment.plist entry.
Doesn't work. If you have something already installed with that set up (my ship already does) you can still install the incompatible item. The only way around it is to have the item you want to install incompatible with something already there, at which point it is then blocked.Switeck wrote:Create new equipment -- "EQ_NO_PASSENGER_BERTH", have your new ship come with that installed by default.
Have it be incompatible with "EQ_PASSENGER_BERTH", via an edited shipyard-override.plist that adds that equipment as conflicting.
The check is only on the item to be installed, not on what is already there. Only way to get it to work is to revise the entry for the passenger berth, which is what we're trying to avoid (but at the moment is the only way).
In the current system there isn't a way. The only ways I can see are to make the incompatibility check work both ways on existing equipment as well as the item to be installed (so the idea above would work) or to revise the system and have a "forbidden equipment" section in shipyard.plist (possibly replacing the optional one, so all equipment is allowed unless explicitly forbidden, rather than forbidden unless allowed except for when available_to_all is set).Commander McLane wrote:The problem is that I don't see a practicable way for doing it.
But both are quite major reworks of the system.
My OXPs via Boxspace or from my Wiki pages .
Thargoid TV
Dropbox Referral Link
Thargoid TV
Dropbox Referral Link
Ok, in about a week I should be back to my full dev powers (boring story, I'll spare you the details) and I'll try expand the shipyard entry with an incompatible_equipment = { }; bit, along the same lines as standard_equipment and optional_equipment, that is unless some other dev wants to do that before me...
Hey, free OXPs: farsun v1.05 & tty v0.5! :0)
- Killer Wolf
- ---- E L I T E ----
- Posts: 2278
- Joined: Tue Jan 02, 2007 12:38 pm
Re: Optional Equipment & Passenger Berths
just been searching in relation to my Cabins thread and found this.
not sure of the state of play regarding "feature freezes" now that the proposed Oolite 2 turned out to be a fail, but as regards Shipyards, could i suggest :
- different "chance"s for ships and equipment. As per the WIki, it seems stupid that one Chance covers both - it means that you can never get a bog-standard ship w/ nothing fitted, as if the chance triggers to make the shipp appear, it will also trigger additional equipment.
- some method of defining a maximum amount of items, ie a limit as to how many cabins you can have. (Actually, i think this is the only fittable item that you could have more than one of (two ECMs? I don't think so!), but a max amount could be set to zero to block certain items too, as above.
not sure of the state of play regarding "feature freezes" now that the proposed Oolite 2 turned out to be a fail, but as regards Shipyards, could i suggest :
- different "chance"s for ships and equipment. As per the WIki, it seems stupid that one Chance covers both - it means that you can never get a bog-standard ship w/ nothing fitted, as if the chance triggers to make the shipp appear, it will also trigger additional equipment.
- some method of defining a maximum amount of items, ie a limit as to how many cabins you can have. (Actually, i think this is the only fittable item that you could have more than one of (two ECMs? I don't think so!), but a max amount could be set to zero to block certain items too, as above.