Page 9 of 21

Re: [WIP] Spicy Hermits

Posted: Sun Jan 10, 2016 7:07 pm
by Cody
spara wrote:
It's the same with the main station.
<scratches head> Is it? Perhaps I misunderstand you.

Launching from a standard hermit (after a restart) finds several ships already spawned.

Re: [WIP] Spicy Hermits

Posted: Sun Jan 10, 2016 7:13 pm
by spara
Cody wrote:
spara wrote:
It's the same with the main station.
<scratches head> Is it? Perhaps I misunderstand you.

Launching from a standard hermit (after a restart) finds several ships already spawned.
Interesting. The game does spawn ships all around the system at population phase, but I think that the miner launches after the station has been spawned. Any way, I'll add a few pirates around the station at start.

Re: [WIP] Spicy Hermits

Posted: Sun Jan 10, 2016 8:13 pm
by Fritz
As I said, I observe this behaviour around a main station. Some ships are spawned just before the layer launches, but the repopulator function (probably) keeps randomly launching new ships all the time, and if their AI lets them stay at the station, they accumulate there (that's mostly assassins at the anarchy main stations). The same seems to happen with pirate hermits (here the pirates accumulate). The OXP only spawns new ships if their number goes down or the hermit is attacked directly, but additionally the core game seems to launch ships too, sometimes even clean ships. So, in both cases, it's a big difference if you launch immediately after loading a game or if you launch after travelling to the hermit or station from elsewhere and having docked there.

The underlying problem is of course, that a saved game doesn't contain all the ships in the vicinity of stations or rock hermits.
One more version (0.7) for the weekend.
Thank you for all your work! I'm looking forward to test-destroy that hermit again... :twisted:

Re: [WIP] Spicy Hermits

Posted: Sun Jan 10, 2016 9:02 pm
by phkb
Fritz wrote:
the core game seems to launch ships too, sometimes even clean ships
So am I right in thinking that, in the core game, sometimes clean ships will dock at, or launch from, a pirate hermit? What about shuttle destinations - would a shuttle ever be heading to a pirate hermit?

Re: [WIP] Spicy Hermits

Posted: Sun Jan 10, 2016 9:06 pm
by Cody
Interesting... in the core game, I'd think that was a possibility.

Re: [WIP] Spicy Hermits

Posted: Sun Jan 10, 2016 9:25 pm
by spara
phkb wrote:
Fritz wrote:
the core game seems to launch ships too, sometimes even clean ships
So am I right in thinking that, in the core game, sometimes clean ships will dock at, or launch from, a pirate hermit? What about shuttle destinations - would a shuttle ever be heading to a pirate hermit?
If they do, it's possibly a bug as the allegiance is set to "pirate" and the peaceful good guys are set to avoid hostile stations.

Re: [WIP] Spicy Hermits

Posted: Sun Jan 10, 2016 10:05 pm
by Fritz
In don't know what is the normal behaviour for traders/shuttles and pirate hermits. Until recently I wasn't even aware of the existence of three different hermit types! Clean ships launching from pirate hermits (and sometimes - or always? - attacking me) seem to occur only when I attack the hermit itself. But I only know spara's pirate hermits, not the normal ones. And I don't know if the clean ships are innocent traders or assassins.

I have a problem with version 0.7: The relocated hermit doesn't exist. I compared the relocator code to version 0.6, added some log entries, and everything seems to work fine: the entry in the save file is found, and the destroyed hermit is found at its old position and gets a new position with reasonable looking coordinates. But it is nowhere, it seems to be deleted or destroyed immediately after relocation.

Re: [WIP] Spicy Hermits

Posted: Sun Jan 10, 2016 10:10 pm
by Cody
Fritz... what happens if you have a save at the pirate hermit, then it gets destroyed? Or have you already tried that?

Edit: hmm, forget that... I'm rambling!

Re: [WIP] Spicy Hermits

Posted: Sun Jan 10, 2016 10:21 pm
by Fritz
I was only once inside a destroyed hermit, and it was destroyed immediately after docking, so I didn't have the time to save. I think, this is a very unlikely thing to happen. And even if it happens, the saved game wouldn't contain the destruction. I think, we are overthinking it! :)

@spara: The problem I mentioned occurs if I destroy the hermit using the new version, and also if I use an earlier save file including a relocated hermit. So it's not a saving problem but a loading problem. But I don't have a clue yet what it could be.

Edit: No, that was wrong (I should take a break...). The old save file works.

Re: [WIP] Spicy Hermits

Posted: Sun Jan 10, 2016 11:36 pm
by Cody
Fritz wrote:
No, that was wrong (I should take a break...).
<sips tea - nods sagely>

Re: [WIP] Spicy Hermits

Posted: Sun Jan 10, 2016 11:40 pm
by Fritz
The break was a good idea. I added a log entry to this.shipDied() and found the reason for the Rock hermit vanishing:

Code: Select all

00:30:28.435 [spicy_hermits_ship_script]: Rock Hermit died by [Sun ID: 107 position: (-534127, -2.09124e+006, 1.1773e+006) radius: 99.243km] because of hit a sun
Question: How is it possible that the populator moves an object right into the sun? In the wiki it says: "and not within three radii of the planet or sun". So what happened here? It seems that the bug that relocated the hermit into a sun orbit instead of a planet orbit seems still to be present somehow. The question is, if it is hidden somewhere in the OXP or in the core game (nobody would notice an asteroid vanishing inside the sun!).

Perhaps it is connected to Sensible Sun, the only OXP I have that could be able to interfere with these things, but moving the sun farther away shouldn't be a problem, only moving it nearer to the planet.

Re: [WIP] Spicy Hermits

Posted: Mon Jan 11, 2016 1:26 am
by Fritz
I think I might have found a solution. Is the repositioning done in the wrong direction? This could explain the orbit issue and the sun collision issue! I've never done vector calculations in Oolite (or anywhere else since my school times, which ended almost 30 years ago). But I think, the following line could be the problem:

Code: Select all

var offset = origPosition.subtract(pos);
If this is replaced by

Code: Select all

offset = pos.subtract(origPosition);
the new position should be shifted in the opposite direction in this line:

Code: Select all

hermit.position = hermit.position.add(offset);
No time left to test it this night, but I'll do it tomorrow.

Edit: I found a quick way to test it, and yes, that was the problem!

Re: [WIP] Spicy Hermits

Posted: Mon Jan 11, 2016 7:54 am
by spara
Thanks Fritz, fixed now. Such an elementary error :oops: .

New version 0.8.

* Thanks to Fritz, the relocator should now work as intended.
* Simplified the oxp by getting rid of custom grunt AI.
* Added some pirates around the pirate hermits at spawn time. Now the surroundings should not be totally empty on save/load/launch.

Download: https://app.box.com/s/iug64ag9q00i68mhivz2c5elx4ywtuco

I have an idea about the chaotic hermits. Being a little shady, these could offer some random assassination missions to be executed in-system. The missions could be like:
"Anaconda: Lave's Daughter will launch from Lave station around 2084004:20:15:00. 200 credits will be payed to the person who makes sure it never reaches it's destination."
Or maybe
"Adder: Hideous Laughter carrying sensitive documents will enter the system around 2084004:20:32:00. 150 credits will be payed to the person who makes sure the documents disappear."

Re: [WIP] Spicy Hermits

Posted: Mon Jan 11, 2016 12:51 pm
by Zireael
I'm seeing LOADS of great ideas here!

Re: [WIP] Spicy Hermits

Posted: Mon Jan 11, 2016 11:36 pm
by ocz
And I see the danger, that this OXP might get overloaded. Wasn't there already an assasin OXP? I thought I read something about it a while ago, or at least the idea was mentioned. Whatever. Assasin operation like those poor contracters have to face from time to time from the other side of that buisness are a GREAT idea and would spice things up good on hermits. But I fear they are also a very big one. Big enough to justify a whole new OXP. One other OXPs can build(->depend) on. You should really consider spliting this in two at this point. That Hitman OXP could be implemented in a way even on normal choatic (spiceless) hermits they would be available.

You could implement them as a black market screen (F4F4).

As I already wrote phkb in his thread, I'm currently working on a OXP(more like a library script) that's goal is to give a common way to add mission screens in between other screens for other OXPs. I want to finish something tomorrow that's usable. Maybe it's something you're interested in, too.