Maintenance Overhaul

An area for discussing new ideas and additions to Oolite.

Moderators: winston, another_commander

User avatar
Eric Walch
Slightly Grand Rear Admiral
Slightly Grand Rear Admiral
Posts: 5536
Joined: Sat Jun 16, 2007 3:48 pm
Location: Netherlands

Maintenance Overhaul

Post by Eric Walch »

The equipment "Maintenance Overhaul" aka EQ_RENOVATION is a bit of a stepchild in the game. It is not mentioned in the readMe and also the wiki page had almost no links to it. (I just added it to the equipment category) Probably it should get a better place at the wiki. It also will be more transparent in future as the value is now exposed to JS as serviceLevel

Because its hardly mentioned, almost nobody knows what is does. Most people (Me included) always thought it brings the ship in mint condition again. That is not true. It only increases the service level by (4 + techLevel)%. The overhaul becomes offered in systems with techlevel > 6, when the service level drops below 85%. So, when you have a service level of only 75% and do maintenance at a level 7 system, your service level only rises by 11% to 86 %. That is just enough to not offer it a second time, but the next offer will come soon.

In the light that you only get a fixed amount of service, it is correct the the maintenance costs stay the same, but it still feels strange to the player who has no insight how much maintenance he gets. In trunk, I added a few days ago, a change that also makes the value dependent on the actual service level. It still sounds correct that repairing a bad maintained ship is more expensive than the same maintenance on a good maintained ship. It is just more work when working on bad maintained ships.
Result is that a Maintenance Overhaul now cost 25% more than in the past if you wait until it drops to 75% but the Maintenance Overhaul is actually cheaper when doing it immediately when it first becomes available.

A good thing about making it dependent on the service level is that it also fixes a (in my opinion) bug when also subentities were destroyed. In the past you payed for the subentity repair plus the full price for the service. Now, when you recently had done some maintenance, you don't pay twice for it, only for the subents.

(NB techLevels mentioned above are the one based techLevels, as seen by the player and not the internal zero based techLevels)
User avatar
Commander McLane
---- E L I T E ----
---- 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:

Re: Maintenance Overhaul

Post by Commander McLane »

Eric Walch wrote:
It only increases the service level by (4 + techLevel)%. The overhaul becomes offered in systems with techlevel > 6, when the service level drops below 85%. So, when you have a service level of only 75% and do maintenance at a level 7 system, your service level only rises by 11% to 86 %.
So there is actually truth in the lore that it's more worthwhile to have your ship maintenanced in a high-TL system. :shock: I always assumed that to be only lore.
Eric Walch wrote:
In the light that you only get a fixed amount of service, it is correct the the maintenance costs stay the same
But, as specified above, you don't get a fixed amount of service. You get more service in high-TL systems, but for the same price as the lower amount of service in a lower-TL system.
User avatar
CaptSolo
---- E L I T E ----
---- E L I T E ----
Posts: 909
Joined: Wed Feb 23, 2011 10:08 pm
Location: Preying Manta
Contact:

Re: Maintenance Overhaul

Post by CaptSolo »

Commander McLane wrote:
So there is actually truth in the lore that it's more worthwhile to have your ship maintenanced in a high-TL system. :shock: I always assumed that to be only lore.
I go to the shipyard screen before and after overhauls and indeed, high-TL system mechanics do a better job.
User avatar
Diziet Sma
---- E L I T E ----
---- E L I T E ----
Posts: 6312
Joined: Mon Apr 06, 2009 12:20 pm
Location: Aboard the Pitviper S.E. "Blackwidow"

Re: Maintenance Overhaul

Post by Diziet Sma »

That explains why the maintenance intervals seem to roll around so fast sometimes.. if you get your ship fixed up at a low TL system, it won't be long before you're informed you need to do it again.

Good one, Eric.. what a pity this discovery happened too late to make it into the new maintenance release..
Most games have some sort of paddling-pool-and-water-wings beginning to ease you in: Oolite takes the rather more Darwinian approach of heaving you straight into the ocean, often with a brick or two in your pockets for luck. ~ Disembodied
User avatar
Capt. Murphy
Commodore
Commodore
Posts: 1127
Joined: Fri Feb 25, 2011 8:46 am
Location: UK South Coast.

Re: Maintenance Overhaul

Post by Capt. Murphy »

Diziet Sma wrote:
That explains why the maintenance intervals seem to roll around so fast sometimes.. if you get your ship fixed up at a low TL system, it won't be long before you're informed you need to do it again.

Good one, Eric.. what a pity this discovery happened too late to make it into the new maintenance release..
Well it was by design, so probably wouldn't have been considered a bug. Not entirely undiscovered either https://bb.oolite.space/viewtopic.ph ... 30#p150703 :wink: . The poorer value maintenance at lower Tech Levels is still present with Eric's excellent new code, and I think remains a sensible feature. What is different is that the price varies depending on how poor a state your ship is in when you purchase the maintenance, and that the cost for serviceLevel increase and missing sub ent repair is separated in the calculation. This goes a long way to mitigating against the high maintenance costs players flying ships with frangible sub-ents tended to suffer, as they would previously be offered a full price overhaul for 1 missing sub ent even when serviceLevel was at it's maximum.
Eric Walch wrote:
In the light that you only get a fixed amount of service, it is correct the the maintenance costs stay the same, but it still feels strange to the player who has no insight how much maintenance he gets.
It is possible now by OXP to have a report of a ship's serviceLevel, for example on the Manifest screen. But perhaps it could be added to the HUD drawables, and included in the default HUD? On the ball players will quickly realise that the are better off hunting down high tech systems to get their maintenance done.

Edit to add: another suggestion.

As is stands the subEnt part of the fee can work out to be 2.8 times the maximum serviceLevel part of the fee.

For example:
A ship with a value of 1000000, no missing subEnts and a serviceLevel of 75 will pay 12500Cr.
The same ship with a serviceLevel of 100, but 7 or more missing subEnts will pay 35000Cr.
The same ship with a serviceLevel of 75 and 7 or missing subEnts will pay a wapping 42500Cr.

I think the subEnt part of the fee should be capped at the same level as the serviceLevel part of the fee, so the above example would then be

A ship with a value of 1000000 , no missing subEnts and a serviceLevel of 75 will pay 12500Cr.
The same ship with a serviceLevel of 100, but 7 or more missing subEnts will pay 12500Cr.
The same ship with a serviceLevel of 75 and 7 or missing subEnts will pay a more reasonable 25000Cr.

Could be done by adjusting the maximum subEnt adjustment to 25% (5 or more missing subEnts), and using the same multiplier as for serviceLevel. Would also have a small impact in the players favour on the resale value of a ship with missing SubEnts

eg.

Code: Select all

- (double) renovationCosts
{
	// 5% of value of ships wear + correction for missing subentities.
	OOCreditsQuantity shipValue = [UNIVERSE tradeInValueForCommanderDictionary:[self commanderDataDictionary]];
	double costs = 0.005 * (100 - ship_trade_in_factor) * shipValue;
	costs += 0.005 * shipValue * [self missingSubEntitiesAdjustment];
	return cunningFee(costs, 0.05);
}

Code: Select all

- (OOInteger) missingSubEntitiesAdjustment
{
	// each missing subentity depreciates the ship by 5%, up to a maximum of 25% depreciation.
	int percent = 5 * ([self maxShipSubEntities] - [[[self shipSubEntityEnumerator] allObjects] count]);
	return (percent > 25 ? 25 : percent);
}
[EliteWiki] Capt. Murphy's OXPs
External JavaScript resources - W3Schools & Mozilla Developer Network
Win 7 64bit, Intel Core i5 with HD3000 (driver rev. 8.15.10.2696 - March 2012), Oolite 1.76.1
Switeck
---- E L I T E ----
---- E L I T E ----
Posts: 2411
Joined: Mon May 31, 2010 11:11 pm

Re: Maintenance Overhaul

Post by Switeck »

How quickly does the maintenance level drop by 1%?
Is it time based, jump based, or also increase due to "hull" damage (when hit with no shield up)?
User avatar
Eric Walch
Slightly Grand Rear Admiral
Slightly Grand Rear Admiral
Posts: 5536
Joined: Sat Jun 16, 2007 3:48 pm
Location: Netherlands

Re: Maintenance Overhaul

Post by Eric Walch »

Switeck wrote:
How quickly does the maintenance level drop by 1%?
Is it time based, jump based, or also increase due to "hull" damage (when hit with no shield up)?
It is only based on hits at the hull with shields down. Under that conditions a selection is made to damage equipment, damage cargo, of damage the ship itself. In the light of the last one a hud element would be helpful. However, I don't know how important the service level is for most players. When looking at myself, I only did less ten times maintenance ever. I never do it and accept the higher risks. Before Oolite 1.74, the risks were even minimal, therefor I added (in 1.74?) the service level into the calculation that gives the chance on equipment failure. Before that, he only effect was on jumping between systems.

Dependence between maintenance and tech level was no bug, and very deliberate. It is only a problem that this effect was very 'hidden' and not even documented. So, at least the wiki should be updated that high tech systems offer more for their money. Hmmm, maintenance is probably not labour intensive or you would expect to get more done for the same credits at a low tech system. :P

The new trunk code will not alter this tech level dependency but on top of that, adds a little price variation based on current condition with an average of the old value. Doing it fast will be cheaper, unless you do it fast at a low tech system.
User avatar
Disembodied
Jedi Spam Assassin
Jedi Spam Assassin
Posts: 6885
Joined: Thu Jul 12, 2007 10:54 pm
Location: Carter's Snort

Re: Maintenance Overhaul

Post by Disembodied »

Doe the chance of equipment failure include the chance of a fuel leak?
User avatar
cim
Quite Grand Sub-Admiral
Quite Grand Sub-Admiral
Posts: 4072
Joined: Fri Nov 11, 2011 6:19 pm

Re: Maintenance Overhaul

Post by cim »

Disembodied wrote:
Doe the chance of equipment failure include the chance of a fuel leak?
A fuel leak is one of the possible consequences of a witchjump malfunction, and witchjump malfunctions are marginally more likely on a poorly-maintained ship.

Very, very, marginally. They only start getting more common at 80%, but ship maintenance stops getting worse at 75%.

Hmm, I wonder if now that overhaul cost is tied to maintenance level, we should change the lower bound on service level so that it can drop lower than 75% (but keep the calculation of maintenance level after overhaul the same as now so you don't get asked to do two overhauls in a row).
User avatar
Disembodied
Jedi Spam Assassin
Jedi Spam Assassin
Posts: 6885
Joined: Thu Jul 12, 2007 10:54 pm
Location: Carter's Snort

Re: Maintenance Overhaul

Post by Disembodied »

cim wrote:
Hmm, I wonder if now that overhaul cost is tied to maintenance level, we should change the lower bound on service level so that it can drop lower than 75% (but keep the calculation of maintenance level after overhaul the same as now so you don't get asked to do two overhauls in a row).
I think that, since it's there, the maintenance overhaul (or lack thereof) should have some sort of noticeable effect. I'd keep witchjump malfunctions rare, and towards the lower end of things (i.e. only for ships with a very poor level of maintenance), but given the cost of ship maintenance v. the cost of repairing the odd broken item, at the moment it looks to be economically more sensible to not bother maintaining your ship. Is there the possibility of doing other things to the player, e.g. degrading their engines, reducing top speed/acceleration/handling? Combined with various alerts and crunching noises, these might give players the incentive to get the ship fixed up ...
User avatar
Diziet Sma
---- E L I T E ----
---- E L I T E ----
Posts: 6312
Joined: Mon Apr 06, 2009 12:20 pm
Location: Aboard the Pitviper S.E. "Blackwidow"

Re: Maintenance Overhaul

Post by Diziet Sma »

Capt. Murphy wrote:
It is possible now by OXP to have a report of a ship's serviceLevel, for example on the Manifest screen. But perhaps it could be added to the HUD drawables, and included in the default HUD?
Either of those would be very nice to have.. although I don't think it has the kind of urgency about it that would really require serviceLevel to be displayed on the HUD..
Most games have some sort of paddling-pool-and-water-wings beginning to ease you in: Oolite takes the rather more Darwinian approach of heaving you straight into the ocean, often with a brick or two in your pockets for luck. ~ Disembodied
User avatar
Eric Walch
Slightly Grand Rear Admiral
Slightly Grand Rear Admiral
Posts: 5536
Joined: Sat Jun 16, 2007 3:48 pm
Location: Netherlands

Re: Maintenance Overhaul

Post by Eric Walch »

Disembodied wrote:
e.g. degrading their engines, reducing top speed/acceleration/handling? .
Reducing acceleration is easy to add. Needs just the serviceLevel to be multiplied with thrust at two places. A bad maintained ship than accelerates 25% less fast. When you start timing how fast you reach max speed from zero, you notice it, but generally not. Even with both compiled versions open simultaneously you must watch closely to notice the difference. So, adding it to acceleration will not be a big game changer and thus a reason to add it.
Diziet Sma wrote:
Capt. Murphy wrote:
It is possible now by OXP to have a report of a ship's serviceLevel, for example on the Manifest screen. But perhaps it could be added to the HUD drawables, and included in the default HUD?
Either of those would be very nice to have.. although I don't think it has the kind of urgency about it that would really require serviceLevel to be displayed on the HUD..
Alternative to add it to the HUD, you could reduce the max speed as soon as serviceLevel drops below 85%. That, not being able to reach max speed anymore, is also an indication of bad service levels.
another_commander
Quite Grand Sub-Admiral
Quite Grand Sub-Admiral
Posts: 6683
Joined: Wed Feb 28, 2007 7:54 am

Re: Maintenance Overhaul

Post by another_commander »

In my opinion, things like maintenance overhaul should remain unquantified for the player. The overhaul status is one of the qualitative propoerties of the ship. How does the player quantify for example 74.34% hull integrity? The player should be able to just tell that the ship is brand new (just after overhaul), in generally good shape or in quite a bad shape (when the need for overhaul is noted in the shipyard). Assigning a percentage to the status of the ship that the player can refer to will only make the game more arcadey-like than anything.

It is similar to having the remaining energy of the NPC ships displayed on the HUD. It can be done, but for me it brings immersion down.
User avatar
Disembodied
Jedi Spam Assassin
Jedi Spam Assassin
Posts: 6885
Joined: Thu Jul 12, 2007 10:54 pm
Location: Carter's Snort

Re: Maintenance Overhaul

Post by Disembodied »

another_commander wrote:
It is similar to having the remaining energy of the NPC ships displayed on the HUD. It can be done, but for me it brings immersion down.
I agree – but it might be possible to add some non-quantitative reminders on docking if the player lets their ship go unmaintained for too long, e.g.
You notice some other pilots looking at your ship and shaking their heads.
You notice some deckhands pointing at your ship and laughing.
Something falls off your ship with a clatter and rolls away into the shadows. It probably wasn't anything important.
User avatar
cim
Quite Grand Sub-Admiral
Quite Grand Sub-Admiral
Posts: 4072
Joined: Fri Nov 11, 2011 6:19 pm

Re: Maintenance Overhaul

Post by cim »

Disembodied wrote:
I agree – but it might be possible to add some non-quantitative reminders on docking if the player lets their ship go unmaintained for too long, e.g.
With a little bit of scripting, it shouldn't be that hard to put a few different HUD graphics in place which get progressively less shiny and more battered and scratched as service level falls. Get down below 80% or so and gauges can actually start falling off...

Would work best with an "instrument panel" style like Fighter HUD, of course.
Post Reply