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

The Feudal States

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

Moderators: winston, another_commander

User avatar
Thargoid
Thargoid
Thargoid
Posts: 5525
Joined: Thu Jun 12, 2008 6:55 pm

Post by Thargoid »

This can be scripted around. For example have a new piece of equipment "EQ_FS_EBOMB_DISABLED" or somesuch, which is incompatible with the E-bomb.

Then rather than damaging the E-bomb, remove it and award the disabled one instead (as a placeholder and to block the player buying another E-bomb). The disabled bomb can be made unrepairable by the repairbots by adding the line

Code: Select all

script_info = { thargoidRepairBotChance = 0; }; 
to it's equipmentinfo.plist entry (or the XML equivalent as appropriate). Then once the mission is completed, reverse the procedure and swap things back.

And to cover all eventualities, use a worldscript check for the disabled bomb getting damaged, and then auto-repair it (just to stop the disabled bomb getting damaged and confusing things).
User avatar
Mauiby de Fug
---- E L I T E ----
---- E L I T E ----
Posts: 847
Joined: Tue Sep 07, 2010 2:23 pm

Post by Mauiby de Fug »

Well, I'm now attempting to compete in a tournament. A few notes...

I've noticed that whenever I finish an event, upon returning to the Lodge I am greeted by a blank mission screen. It gives no indication of whether I succeeded in the event or failed - the only way to know is by keeping track of how I'm doing during the event, or by seeing if I'm allowed to participate in the next one.

During the Chase event, I accidentally scooped the target drone. I then had to eject the canister to continue. Clearly I need to watch where I'm flying!

Somewhat more seriously, I'm having trouble with the Cascade event. I can find no jump gate anywhere near the tournament buoy. There is a gate spawned about 2 or 3 minutes away at full jump speed which I noticed marked on my Navigation scanner, but this doesn't seem to do anything. All this basically means that I am completely unable to find the asteroid field...
User avatar
Mauiby de Fug
---- E L I T E ----
---- E L I T E ----
Posts: 847
Joined: Tue Sep 07, 2010 2:23 pm

Post by Mauiby de Fug »

Okays, the last problem solved! Should have remembered to check the logs...
[script.javaScript.exception.notFunction]: ***** JavaScript exception (feudal-tournament.js 3.0): TypeError: system.legacy_addSShipsWithinRadius is not a function
[script.javaScript.exception.notFunction]: /home/robert/.Oolite/AddOns/The Feudal States v1.9.1.oxp/Scripts/feudal-tournament.js, line 308.
Looked at the file, deleted the extra "S", and the jumpgate appears as it should. The jumpgate I could find on the other side of the system was the one by the asteroid field, and I couldn't find the asteroid field as the script was stopped by the error before it had been generated...
User avatar
Ramirez
---- E L I T E ----
---- E L I T E ----
Posts: 628
Joined: Mon Nov 07, 2005 9:52 am
Location: London, UK

Post by Ramirez »

Thanks for the error details. Have updated to v1.9.2 to include:
- changes to scan classes of target drones so those in The Chase cannot be scooped
- fixed appearance of jumpgate in Cascade
- corrected problem with event debriefing screens not showing (the script had a load of errant underscores)
- streamlined the script by adding a new this.resetTournament function to clear tournament-related variables

Give that a go and let me know if you have any problems.
Download Resistance Commander plus many other exciting OXPs HERE
User avatar
Mauiby de Fug
---- E L I T E ----
---- E L I T E ----
Posts: 847
Joined: Tue Sep 07, 2010 2:23 pm

Post by Mauiby de Fug »

All now seems to be working smoothly! Interestingly, the target drones now appear as Offenders, and I can get a bounty for taking them out....
User avatar
Mauiby de Fug
---- E L I T E ----
---- E L I T E ----
Posts: 847
Joined: Tue Sep 07, 2010 2:23 pm

Post by Mauiby de Fug »

Okay then, here we go!

Actual errors:

I'm currently in Galaxy 2, and whenever someone from Isara challenges me at the Hunter's Lodge, you get something like
Image
Image
Image
appears.

Also, I've just completed an assassination mission, but I can't access the Royal Court. I can land on Rabiarce (the house I'm affiliated to) and it tells me that I'm at the Court, but if I press F8 I just get a trade screen.


Possible errors:

There was a Tournament open in Galaxy 1 when I jumped to Galaxy 2. The Tournament is apparently still open in Esredice, even though I've been in Galaxy 2 for a while, and affiliated with a house. Should this have changed, or do I just have to wait for a while?

Upon leaving the Hunter's Lodge, about 5 feudal ships seem to be spawned. This is all very well and good, but when I visit the lodge, I tend to take many challenges, and after half a dozen times, there are quite a lot of ships around, filling up the spacelanes and on occasion reducing my frame rate. I have once had to use injectors for a continuous stretch over half the way from the lodge to the planet because there were so many ships there. Is it supposed to load ships every time?


Suggestions:

I've recently bought myself a Caduceus, and one of the things about this ship is that it comes with turrets. This makes the challenges at the lodge even easier than they were before. Seeing as missiles and energy bombs are disabled in the interests of fairness, would it make sense for turrets to be temporarily disabled as well?

During the missions (ie assassination, convoy raid etc...), the mission description on the F5-F5 screen remains the same, even after you've completed the mission. Would it be possible to change it after you've attempted the mission, telling you to return to your home planet? It can be a bit confusing to see a message telling you to do something you've already done. The same goes for the planet marker in the galaxy chart screen.


Whew! Sorry for the long post!


Edit:

There isn't anything amiss in my log file, but here are the feudal related things in my save game if that helps!

Code: Select all

	<key>feudal-mission.js</key>
	<string>Feudal mission: Execute Lady Francesca, believed to be hiding in the Teceri system.</string>
	<key>feudal-promotion.js</key>
	<string>Feudal rank: Barone di Rabiarce</string>
	<key>feudal-tournament.js</key>
	<string>Royal Tournament: In progress at Esredice</string>

	<key>mission_feudal_challenger</key>
	<string>NONE_SET</string>
	<key>mission_feudal_jumpcount</key>
	<string>9</string>
	<key>mission_feudal_mission</key>
	<string>EXECUTION_SUCCESS</string>
	<key>mission_feudal_mission_cargocount</key>
	<string>0</string>
	<key>mission_feudal_mission_commodity</key>
	<string>luxuries</string>
	<key>mission_feudal_mission_firstname</key>
	<string>Francesca</string>
	<key>mission_feudal_mission_gender</key>
	<string>she</string>
	<key>mission_feudal_mission_home</key>
	<string>Rabiarce</string>
	<key>mission_feudal_mission_home_galaxy</key>
	<string>1</string>
	<key>mission_feudal_mission_house</key>
	<string>Rabiarce</string>
	<key>mission_feudal_mission_lastname</key>
	<string>Russo</string>
	<key>mission_feudal_mission_level1_title</key>
	<string>Lady</string>
	<key>mission_feudal_mission_level2_title</key>
	<string>Lady</string>
	<key>mission_feudal_mission_location</key>
	<string>Teceri</string>
	<key>mission_feudal_mission_location_no</key>
	<string>235</string>
	<key>mission_feudal_mission_of</key>
	<string>di</string>
	<key>mission_feudal_mission_rank</key>
	<string>Baronessa</string>
	<key>mission_feudal_mission_reward</key>
	<string>12000</string>
	<key>mission_feudal_mission_role</key>
	<string>feudal-adder</string>
	<key>mission_feudal_mission_ship</key>
	<string>Adder</string>
	<key>mission_feudal_player_credits</key>
	<string>86241.5</string>
	<key>mission_feudal_player_gender</key>
	<string>he</string>
	<key>mission_feudal_player_of</key>
	<string>di</string>
	<key>mission_feudal_player_rank</key>
	<string>Barone</string>
	<key>mission_feudal_player_rank_no</key>
	<string>2</string>
	<key>mission_feudal_player_title</key>
	<string>Sir</string>
	<key>mission_feudal_player_title_peer</key>
	<string>Lord</string>
	<key>mission_feudal_promotion_date</key>
	<string>2084532:01:24:38</string>
	<key>mission_feudal_score</key>
	<string>67</string>
	<key>mission_feudal_tournament_home</key>
	<string>Esredice</string>
	<key>mission_feudal_tournament_jumpcount</key>
	<string>103</string>
	<key>mission_feudal_tournament_offer</key>
	<string>TOURNAMENT_OPEN</string>
Last edited by Mauiby de Fug on Sat Nov 13, 2010 1:54 am, edited 1 time in total.
User avatar
Ramirez
---- E L I T E ----
---- E L I T E ----
Posts: 628
Joined: Mon Nov 07, 2005 9:52 am
Location: London, UK

Post by Ramirez »

Thanks for the info. I've been able to go through and understand exactly where things aren't working as they should.
Mauiby de Fug wrote:
Okay then, here we go!

Actual errors:

I'm currently in Galaxy 2, and whenever someone from Isara challenges me at the Hunter's Lodge, you get something like...
OK, failures like these tend to be caused by a typo related to the house name. In descriptions.plist, in the list for Galaxy 2 (under feudal_house_1) it says 'Isara' when it should be 'Israra'. I found the same typo in feudal-buoy.js. The shipdata entries should be OK.
Also, I've just completed an assassination mission, but I can't access the Royal Court. I can land on Rabiarce (the house I'm affiliated to) and it tells me that I'm at the Court, but if I press F8 I just get a trade screen.
The intention is for a mission screen to pop up as soon as the player docks at any main station after completing the assassination. This saves having to go back to the Royal Court each time. I might change the mission text to make this a bit more clear.
Possible errors:

There was a Tournament open in Galaxy 1 when I jumped to Galaxy 2. The Tournament is apparently still open in Esredice, even though I've been in Galaxy 2 for a while, and affiliated with a house. Should this have changed, or do I just have to wait for a while?
I went to the trouble of creating a new function to clear all tournament variables, but somehow didn't include this under the new galaxy event handler in feudal-tournament.js. This is what it should look like:

Code: Select all

this.playerEnteredNewGalaxy = function()
{	
	
	if(missionVariables.feudal_player_rank_no >= 1)
	this.resetTournament()
}
Upon leaving the Hunter's Lodge, about 5 feudal ships seem to be spawned. This is all very well and good, but when I visit the lodge, I tend to take many challenges, and after half a dozen times, there are quite a lot of ships around, filling up the spacelanes and on occasion reducing my frame rate. I have once had to use injectors for a continuous stretch over half the way from the lodge to the planet because there were so many ships there. Is it supposed to load ships every time?
Fair point. Adding feudal ships on launch seems superfluous and I'll remove the this.setupSystem function from the this.shipWillLaunchFromStation event handler.
Suggestions:

I've recently bought myself a Caduceus, and one of the things about this ship is that it comes with turrets. This makes the challenges at the lodge even easier than they were before. Seeing as missiles and energy bombs are disabled in the interests of fairness, would it make sense for turrets to be temporarily disabled as well?
I tried to make such ships ineligible for challenges before but couldn't get it to work. However, I've tried again and have found a solution. The player can look at the challengers but if they try and accept they will be refused by the marshals. I might also increase the 'low odds' threshold as well.
During the missions (ie assassination, convoy raid etc...), the mission description on the F5-F5 screen remains the same, even after you've completed the mission. Would it be possible to change it after you've attempted the mission, telling you to return to your home planet? It can be a bit confusing to see a message telling you to do something you've already done. The same goes for the planet marker in the galaxy chart screen.
I've since learned how to handle F5 updates and system markers from multiple scripts so I can improve this, especially on the raid mission as the debriefing can come some time after the completion of the mission.
Whew! Sorry for the long post!
No problem. Rather than do a quick fix now I'm aiming to do another release at the end of the month, so as to incorporate anything else that may be causing problems.
Download Resistance Commander plus many other exciting OXPs HERE
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 »

Ramirez wrote:
Upon leaving the Hunter's Lodge, about 5 feudal ships seem to be spawned. This is all very well and good, but when I visit the lodge, I tend to take many challenges, and after half a dozen times, there are quite a lot of ships around, filling up the spacelanes and on occasion reducing my frame rate. I have once had to use injectors for a continuous stretch over half the way from the lodge to the planet because there were so many ships there. Is it supposed to load ships every time?
Fair point. Adding feudal ships on launch seems superfluous and I'll remove the this.setupSystem function from the this.shipWillLaunchFromStation event handler.
Alternatively you could cap the number of ships by counting the existing ones and stop spawning new ones if there is more than a certain number of ships. Something like

if(system.countShipsWithPrimaryRole("whateverRole") < 5) {this.setupSystem}
User avatar
Mauiby de Fug
---- E L I T E ----
---- E L I T E ----
Posts: 847
Joined: Tue Sep 07, 2010 2:23 pm

Post by Mauiby de Fug »

Okay, I've gone through and edited the descriptions.plist, feudal-bouy.js and feudal-tournament.js.

With regards to the assassination mission, how do I get it to let me "finish" the mission, and take another one?
User avatar
Ramirez
---- E L I T E ----
---- E L I T E ----
Posts: 628
Joined: Mon Nov 07, 2005 9:52 am
Location: London, UK

Post by Ramirez »

With the mission_feudal_mission set to "EXECUTION_SUCCESS", that should trigger a mission screen as soon as you've docked. This is what's in feudal-mission.js:

Code: Select all

if(missionVariables.feudal_mission == "EXECUTION_SUCCESS")		
			
				{	mission.runScreen({messageKey: "feudal_mission_executionsuccess"})
					mission.unmarkSystem([missionVariables.feudal_mission_location_no])
					missionVariables.feudal_mission = "NONE_SET"
					missionVariables.feudal_score += 20
					mission.setInstructionsKey()
					player.credits += missionVariables.feudal_mission_reward
				}
You don't need to be docked at a Royal Court for this, nor does it have to be a feudal system. I did test this last night by setting the success variable using the console and then redocking at the main station.
Download Resistance Commander plus many other exciting OXPs HERE
User avatar
Mauiby de Fug
---- E L I T E ----
---- E L I T E ----
Posts: 847
Joined: Tue Sep 07, 2010 2:23 pm

Post by Mauiby de Fug »

As can be seen in the extract from my save game, mission_feudal_mission is set to "EXECUTION_SUCCESS", but I did not receive any mission screen, and I am unable to access a new mission.
User avatar
Ramirez
---- E L I T E ----
---- E L I T E ----
Posts: 628
Joined: Mon Nov 07, 2005 9:52 am
Location: London, UK

Post by Ramirez »

Yes, that's why I can't understand why it's not working! I'll try posting a link to the full feudal-mission.js script so you can try again with that.
Download Resistance Commander plus many other exciting OXPs HERE
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 »

Ramirez: You could try to set missionVariables.feudal_mission to EXECUTION_SUCCESS via the JS console on your system and see what happens.
User avatar
Ramirez
---- E L I T E ----
---- E L I T E ----
Posts: 628
Joined: Mon Nov 07, 2005 9:52 am
Location: London, UK

Post by Ramirez »

That's exactly what I did, and it works as expected on my setup. If anything I've been doing too much testing by using the console and not playing through in the normal way and letting the script set the variables correctly. I'll copy the savegame details and see if I get the same problem.

I'll reiterate though - the way the script's written I think it's preventing the mission screen fron showing when docked at a royal court, as it assumed the screen would be shown much earlier at a normal station.
Download Resistance Commander plus many other exciting OXPs HERE
User avatar
Mauiby de Fug
---- E L I T E ----
---- E L I T E ----
Posts: 847
Joined: Tue Sep 07, 2010 2:23 pm

Post by Mauiby de Fug »

Okays, I've now managed to get the Debug.oxp and javascript console up and working on my system.

What sort of commands should I be using to change the missionVariables.feudal_mission in the console? That way, we can find out... well, I don't know what, actually, but if it doesn't work then the problem is might be with my system somewhere...
Post Reply