Join us at the Oolite Anniversary Party -- London, 7th July 2024, 1pm
More details in this thread.

Mining OXP

Discussion and information relevant to creating special missions, new ships, skins etc.

Moderators: another_commander, winston

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:

Post by Commander McLane »

Arexack_Heretic wrote:
* I'd have to investigate the method to retrieve systems nearby.
Look no further than this. :wink:
User avatar
Svengali
Commander
Commander
Posts: 2370
Joined: Sat Oct 20, 2007 2:52 pm

Post by Svengali »

Arexack_Heretic wrote:
edit: you do realise that 'resqued' pilots are perfectly able to reach port in their escapepods, right? otherwise, A small bit of scripting could remove a tonne of slaves when you scooped an E-pod just before docking, and display a consoleMessage from the resqued pilot. IIRC legal records are erased after jumping ship, but the type of thanks you get may vary according to the rating of the resquee.
...might want to add a missionscreen, first time. What to do with the pilot? Free him/sell him/free always/always sell them. (no more screens)
The Vector does already something like this for special cargo-pods and escape-capsules (free/give back/sell/and other options for more experienced Commanders). Additionally the coming version has a new feature. If you want to check it out give me a pm and I'll send you a link and infos.
User avatar
docwild
Dangerous
Dangerous
Posts: 64
Joined: Thu Mar 29, 2007 1:36 pm

Post by docwild »

Okay, I've oopified it and added the option of non-slave mining. Not surprisingly this has cut the code in half, making bug hunting and feature adding much easier.

It may be harder to take over claimed mines now, as they have a tendancy to explode. This wont kill anyone but if you're too close it will drain your shields. The station will automatically eject you if you don't do it yourself, to avoid the damage you can use injectors. Claimed mines run the risk of pirates, which I have run out of time to test today.

When docking you'll be given the option of which resources to invest, (20t machinery + 5t computers OR 20t food + 5t slaves). Slave mining is twice as profitable. The illicit goods are still taken automatically but I will add options to the mission screen for them too. Some kind of management page, I imagine.

The economy of it still sucks, I'll work on that next and then I'll add in better AIs.

I will add the option of freeing slaves too, as it reminds me of John Newton. Amazing Grace and all that. Maybe adding personalities with abolitionist's names (Wilberforce etc).

There's probably other stuff which I've forgotten.

Please bear in mind that this is still alpha, the oopification is good in many ways but it makes testing much more difficult as the logic is generated on the fly.

Thanks for all the suggestions, do keep them coming.
User avatar
pagroove
---- E L I T E ----
---- E L I T E ----
Posts: 3035
Joined: Wed Feb 21, 2007 11:52 pm
Location: On a famous planet

Post by pagroove »

How about counting in the government of a system too. A mine in a communism system would operate differently from a mine in a decmocracy. For example in the first systems slave use is legal while in the last system it would be illegal. Maybe the police should come to check this once in a while.
For P.A. Groove's music check
https://soundcloud.com/p-a-groove
Famous Planets v 2.7. (for Povray)
Image
https://bb.oolite.space/viewtopic.php?f=4&t=13709
User avatar
Arexack_Heretic
Dangerous Subversive Element
Dangerous Subversive Element
Posts: 1878
Joined: Tue Jun 07, 2005 7:32 pm
Location: [%H] = Earth surface, Lattitude 52°10'58.19"N, longtitude 4°30'0.25"E.
Contact:

Post by Arexack_Heretic »

if you pay your slaves workers, it is no longer exactly slavery...as long as they have the option to leave. (outside of a bodybag).
Riding the Rocket!
User avatar
docwild
Dangerous
Dangerous
Posts: 64
Joined: Thu Mar 29, 2007 1:36 pm

Post by docwild »

I like the idea of police checks in stable governments, another way to increase variety.

Paying slaves may be worth considering but it seems at odds with buying them in the first place. However, perhaps a new ship AI, "emancipators" could be added who think slaves are better off dead. When a player is in range of a station they could attack it and the player would then decide if it's worth defending. I don't recall seeing any station defence missions other than the excellent Asteroid storm so it might be of some gameplay value.

It is my intention to better hide the asteroids, but not in initial testing as it would give me a headache. :P
User avatar
PhantorGorth
---- E L I T E ----
---- E L I T E ----
Posts: 647
Joined: Wed May 20, 2009 6:48 pm
Location: Somewhere off the top left of Galaxy 1 map

Post by PhantorGorth »

To add to the slave emanicipation idea. I have been thinking that there should be a way to convert 1 TC Slaves => 1 Passenger (with no destination) + 1 TC Machinery.

Details:
No passenger berth is required as the freed slave has to sleep in the slave cargo pod (now machinery). Berths are for traveling in comfort.

The new passenger has no destination and will depart at the next main station (or may be some other stations too.)

You also can not sell or eject the same number of machinery cargo cannisters as freed slaves until the freed slaves have disembarked.

For an evil twist on this you should also have the option to do 1 Passenger + 1 TC Machinery = 1 TC Slaves.

A restriction should be no enslaving if you have freed slaves on board (it causes riots) Maybe the same the other way too.

This would require changes to core Oolite to support this.
User avatar
docwild
Dangerous
Dangerous
Posts: 64
Joined: Thu Mar 29, 2007 1:36 pm

Post by docwild »

I think that would be possible if the ship.passenger property were read/write but it probably could be done outside the realms of passenger, adding the info to the mission screen or something. I'm not sure I understand where the machinery comes from, am I missing something? Mining gear stolen by the disgruntled slave maybe.
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:

Post by Commander McLane »

docwild wrote:
I'm not sure I understand where the machinery comes from, am I missing something?
I guess Phantor is assuming that a slave pod must have some minimal life support system. That would turn into machinery. Same would go for an escape pod, by the way.
User avatar
PhantorGorth
---- E L I T E ----
---- E L I T E ----
Posts: 647
Joined: Wed May 20, 2009 6:48 pm
Location: Somewhere off the top left of Galaxy 1 map

Post by PhantorGorth »

docwild wrote:
I think that would be possible if the ship.passenger property were read/write
This is why I said "This would require changes to core Oolite to support this.". But we would not only need just the read/write, there would need to be code that makes passengers with no destination disembark at the next main station. Further, we would need code to stop you ejecting or selling that machinery until the ex-slaves disembark, otherwise they won't have anywhere to sleep/live. It might be possible to do this without core changes but I think that it would be difficult.
Commander McLane wrote:
I guess Phantor is assuming that a slave pod must have some minimal life support system. That would turn into machinery. Same would go for an escape pod, by the way.
Yes I was :-) . I agree it would also be the same for an escape pod.

Hmm. I think it might be worth splitting this thread for the discussion on slaves.
User avatar
Lestradae
---- E L I T E ----
---- E L I T E ----
Posts: 3095
Joined: Tue Apr 17, 2007 10:30 pm
Location: Vienna, Austria

...

Post by Lestradae »

PhantorGorth wrote:
... This is why I said "This would require changes to core Oolite to support this.". But we would not only need just the read/write, there would need to be code that makes passengers with no destination disembark at the next main station. Further, we would need code to stop you ejecting or selling that machinery until the ex-slaves disembark, otherwise they won't have anywhere to sleep/live. It might be possible to do this without core changes but I think that it would be difficult. ...
Perhaps a workaround could be to use the special cargo option already available, and make your ex-slave passenger "special cargo". And simultanously remove the "Slave" cargo. All this is .js doable atm, no core game changes are nescessary.

Have a look here:

http://wiki.alioth.net/index.php/Methods
useSpecialCargo: <description of cargo>
// fills the cargo bay withthe cargo described, effectively
// disabling the use of the cargo bay until the cargo is removed.
User avatar
Kaks
Quite Grand Sub-Admiral
Quite Grand Sub-Admiral
Posts: 3009
Joined: Mon Jan 21, 2008 11:41 pm
Location: The Big Smoke

Post by Kaks »

Lestradae's idea will indeed achieve all you wanted and more! :)

Anyway, there's a lot more:
docwild wrote:
I think that would be possible if the ship.passenger property were read/write
What, something like that (and there's also the .passengers array)?

Ok, at the moment you just can't make passengers vanish, but it would be fairly feasible to add a removePassenger('passenger name') function. There would be some difficulties introducing a similar removeContract() function, since the mechanics are quite different (you can already add/remove cargo that's part of a contract, & you get a penalty if you show up without the fully agreed tonnage. With passengers, it's 'a bit' more difficult to deliver -say- just 43% of a person...)

So, not as originally envisaged, but slaves=>passengers is very much doable. For each passenger, you do need to have a passenger berth, though.

I don't quite get the concept of 1 ton - weight of one human sentient - used consumables = 1 ton... I'd do 1 ton slaves = 1 passenger + .6 of a ton, and round it down. So you don't get any salvaged machinery / alloy (In my mind, it wouldn't make much economic sense for the slavers if the value of the salvaged stuff is higher than the original ton of slaves) if you just 'convert' 1 slave, but you do get a rounded down value if you have 2 or more of those. Also, considering that those cargo pods are meant to be self contained, you'd need a specific piece of equipment to open up a slave pod without killing the cargo, something that might well cause some damage to the pod's systems hence the handy machinery => alloy conversion... :)

And you can't have passengers without destination, at least for the foreseeable future. However, if you really want to make your life complicated, you could find out all the systems in range, and figure out their stats (no feudals for newly freed slaves, I suspect). At 'liberation time' you can have a mission screen with something along the lines of 'the freed slave, a (type of sentient) called (name) [for these look no further than here], would like to be dropped at (name of closest system) main station, but it's too much of an inconvenience they can be persuaded to go elsewhere.': dynamically generated choices: '1: sure!', '2:I'm going to (other system name)', '3:what about if I drop him/her/it at (3rd system name) and so on and so forth...

That way you don't need to have hybrid machinery/life support pods... :)


If you want the easier option for freeing slaves, and indeed plan for slaves to stay in their slavers pods until the first opportunity to disembark, then you've already got a way of doing it. It just requires a bit of lateral thinking. Remove the slave pods, add the 'specal machinery' pods (ones that will shrink a bit on docking, and will show up as normal tons of machinery on the manifest screen). Then use a missionVariable to keep the number of freed slaves in. You can then have a mission info saying something along the lines of 'You have 5 freed slaves on board, kept inside their specially modified 'machinery' pods.

If you dock anywhere you free the slaves & shrink the machinery/convert it to alloys, so no restriction there either...

If you try to dump the 'machinery' in space, you can wait until machinery is down to the number of freed slaves, then subtract one to the number of freed slaves for each ton of machinery dumped.


Simples! :)

To recap, there are no technical obstacles to freeing slaves. You can't convert a passenger to a slave yet, though!
Hey, free OXPs: farsun v1.05 & tty v0.5! :0)
User avatar
docwild
Dangerous
Dangerous
Posts: 64
Joined: Thu Mar 29, 2007 1:36 pm

Post by docwild »

As a compromise between the simple and the complicated: an emancipated slave could demand passage somewhere. Freeing slaves might be a costly business. Especially if the "owner" caught up with you.
User avatar
PhantorGorth
---- E L I T E ----
---- E L I T E ----
Posts: 647
Joined: Wed May 20, 2009 6:48 pm
Location: Somewhere off the top left of Galaxy 1 map

Post by PhantorGorth »

Lestradae wrote:
and make your ex-slave passenger "special cargo"
That fills up the cargo bay so that won't work.
Kaks wrote:
I don't quite get the concept of 1 ton - weight of one human sentient - used consumables = 1 ton... I'd do 1 ton slaves = 1 passenger + .6 of a ton, and round it down. So you don't get any salvaged machinery / alloy (In my mind, it wouldn't make much economic sense for the slavers if the value of the salvaged stuff is higher than the original ton of slaves) if you just 'convert' 1 slave, but you do get a rounded down value if you have 2 or more of those. Also, considering that those cargo pods are meant to be self contained, you'd need a specific piece of equipment to open up a slave pod without killing the cargo, something that might well cause some damage to the pod's systems hence the handy machinery => alloy conversion...
Yes I agree that the conversion of 1 empty slave pod is 1 tonne of machinery isn't that sensible (mostly because of the higher price issue) the but I was trying to keep the idea simple. But your idea of x0.6 rounded down works for me. The equipment would likely be the codes to open the pods that are kept with ship's captain to stop any crew member from opening them but I won't rule out the idea of a special piece of equipment.
Kaks wrote:
For each passenger, you do need to have a passenger berth, though.
Kaks wrote:
If you want the easier option for freeing slaves, and indeed plan for slaves to stay in their slavers pods until the first opportunity to disembark, then you've already got a way of doing it. It just requires a bit of lateral thinking. Remove the slave pods, add the 'specal machinery' pods (ones that will shrink a bit on docking, and will show up as normal tons of machinery on the manifest screen). Then use a missionVariable to keep the number of freed slaves in. You can then have a mission info saying something along the lines of 'You have 5 freed slaves on board, kept inside their specially modified 'machinery' pods.
I was aware that berths are a limitation to my original suggestion at the moment. Your simpler solution looks a closer option to my idea. It wouldn't matter to have them disembarking in a feudal system as at the Galcop main station slaves are not supposed to be legal so they can hopefully find passage to elsewhere but to factor in that idea we could have a message saying that "the freed slaves do not wish to disembark in a feudal system" and they remain on the ship unless you sell the "reduced number" of machinery or alloy. (10 freed slaves = 10 x 0.6 machinery = 6T; you sell 2T leaves 4T; 4T / 0.6 = 6.6667 freed slaves ; so you keep 6 freed slaves and 4 are put ashore.). There is nothing to stop them not wanting to disembark at other places too with this idea.
Kaks wrote:
If you try to dump the 'machinery' in space, you can wait until machinery is down to the number of freed slaves, then subtract one to the number of freed slaves for each ton of machinery dumped.
That makes sense.

The main issue now is how to do the action of freeing slaves in Oolite. I wouldn't want a mission screen appear every time I bought or scooped a slave and on F5-F5-F5 I already (or rather soon will) add a mission screen that I use for my Visas OXP so I don't want this to interfere.
User avatar
PhantorGorth
---- E L I T E ----
---- E L I T E ----
Posts: 647
Joined: Wed May 20, 2009 6:48 pm
Location: Somewhere off the top left of Galaxy 1 map

Post by PhantorGorth »

docwild wrote:
As a compromise between the simple and the complicated: an emancipated slave could demand passage somewhere. Freeing slaves might be a costly business. Especially if the "owner" caught up with you.
I think more along the lines of "beggars can't be choosers". Also there wouldn't be owners as you purchase them on a open market. (They are your's until you sell them)
Post Reply