Can't get conditional equipment available!

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

Moderators: winston, another_commander

Post Reply
Switeck
---- E L I T E ----
---- E L I T E ----
Posts: 2411
Joined: Mon May 31, 2010 11:11 pm

Can't get conditional equipment available!

Post by Switeck »

I want the equipment to only be available in Galaxy 8...and then only at certain systems. (And maybe only at main system stations...and 1 other special station: "owt2oGHS".) I also want both the equipment available for sale on starting from a savegame.

But try as I might, my code is full of fail.

Here's its equipment.plist file:

Code: Select all

(
	(
		99, 10000, "One way ticket to Oresrati",
		"EQ_ONEWAYTICKET_TO_ORESRATI",
		"This equipment allows auto jump to Isolated system Oresrati in Galaxy 8. Don't forget to buy a Galactic Hyperdrive otherwise you will not be able to travel to any other system. :)",
		{
			"available_to_all" = 1;
			conditions =
			(
				"galaxy_number equal 7"
			);
			"requires_equipment" = "EQ_ADVANCED_NAVIGATIONAL_ARRAY", "EQ_GAL_DRIVE", "EQ_WORMHOLE_SCANNER";
			"script" = "owt2o_autoJumper.js";
		}
	),
)
Here's the parts of its .js file I think are important:

Code: Select all

this.startUp = function() {
	this.tryAddingShop();
}

this.shipWillLaunchFromStation = function () {
	this.tryAddingShop();
};

this.shipExitedWitchspace = function() {
	this.tryAddingShop();
}

this.tryAddingShop = function () {
	player.commsMessage("Checking for shop...",6);
	if(galaxyNumber == 7) {
		player.commsMessage("In Galaxy 8.",6);
		if(system.ID == 9 || system.ID == 88 || system.ID == 118 || system.ID == 121 || system.ID == 162) {
			EquipmentInfo.infoForKey("EQ_ONEWAYTICKET_TO_ORESRATI").effectiveTechLevel = 1;
			player.commsMessage("Adding equipment at places around bottom left!",6);
		} else {
			EquipmentInfo.infoForKey("EQ_ONEWAYTICKET_TO_ORESRATI").effectiveTechLevel = 12;
			player.commsMessage("Adding equipment at TL13-15 places!",6);
		}
		if(system.ID == 162 && system.countShipsWithRole("owt2oGHS") < 1) {
			system.addShips("owt2oGHS",1);
			player.commsMessage("Adding shop!",6);
		}
	}
}
I get the messages "Checking for shop..." and "In Galaxy 8." when appropriate. But the "Adding equipment" messages I don't seem to get. :(

Going forwards with a totally different OXP, I'd like to make equipment only repairable at certain places. I figure I can just "give" the equipment to the player at the end of a mission using a .js script command...like this:
player.ship.awardEquipment("EQ_NAVAL_ENERGY_UNIT");
But making that normally-unavailable-for-sale equipment repairable regardless of how you acquire it (such as buying a ship already with it) seems oddly hard to do.
User avatar
Okti
---- E L I T E ----
---- E L I T E ----
Posts: 700
Joined: Sun Sep 26, 2010 1:51 pm
Location: A GH shop, near witchpoint to Oresrati in Galaxy 8

Re: Can't get conditional equipment available!

Post by Okti »

Hi Switeck,

Just copying your code to my version, I get the all the messages. Make sure you do not have another shipExitedWitchspace handler in your script.

And also if you already have the equipment, remove it from your save file.

Edit : If you want to speak further I am on IRC.
My OXP's
And Latest Mission Coyote's Run
Post Reply