» Create a corporation. You’ll need a name and a station. You can either reuse the basic armor or weapon dealers, pick out an unused station graphic from the vanilla resources, or create your own.
» Create a label for your corporation’s products.
» If you already have a corporate identity in mods elsewhere — Drake Technologies, Northwind, Avian Enterprises, and so forth — come up with a new one for the purpose of this Jam.
» Make between three and nine items that can be installed onto a playership. This can be armor, weapons, shields, or other devices. If you’re making multiple items of the same type, they can either be similarly themed (such as the Yoroi line of shields or the different variants of reactive armor, for example) or unique in their own right (such as the Hanzo blaster versus the Katana starcannon).
» The items should be at least reasonably balanced against vanilla weapons.
To modders who already know what they’re doing: Take it easy on the <Events>, please. Like last month, I’m trying to keep this to relatively simple stuff.
Once you have your corporation and items ready, send me a copy of it so I can do a little window shopping. Unless you’re using any custom graphics, you should just be able to copypasta the XML in a PM. If you have any questions, ask! That’s what I’m here for. You can either ask here in this thread, via PM, or on IRC — the link is on the main page, and I’m around pretty regularly. Xephyr is once again my acting deputy for the month — you should still have your badge somewhere, I hope. ^.~
Templates. Stations may look daunting, but there’s actually a lot that won’t really need changed beyond the corporation name in the <Items> and <Trade> sections, the items available in the <Items> section, levelFrequency in the <StationType> section, and the image defined in the <Image> section. Don’t be afraid to experiment with things a bit to see what does what, but keep a functional backup handy to revert to in case you need one. I picked the Rassiermesser Arms & Armor dealer and then tweaked it a little here and there for use on the station template.
Code: Select all
<!-- Corporate Station -->
<!-- This first section describes the basics of your station. For the purposes of the Jam, you only need to worry about the following:
name: Your station name.
dockingPorts: How many ships can dock at your station at one time.
armorID: The armor your station has. Note that this is only used for the armor resistances, not the hit points.
hitPoints: How many hit points your station has.
repairRate: How fast your station repairs damage done to it.
fireRateAdj: How frequently your station fires.
explosionType: How big a boom your station makes if it gets destroyed.
levelFrequency: What level systems your station can be spawned in.
locationCriteria: Where your station is likely to be spawned in a system.
-->
<StationType UNID="&stArmsDealerRasiermesser;"
name= "Rasiermesser Arms & Armor"
sovereign= "&svCorporate;"
inherit= "&baCorporateStation;"
dockScreen= "&dsArmsDealerSpecial;"
abandonedScreen= "&dsAbandonedStation;"
dockingPorts= "8"
canAttack= "true"
multiHull= "true"
armorID= "&itGusokuArmor;"
hitPoints= "250"
repairRate= "3"
fireRateAdj= "80"
explosionType= "&vtBlastExplosion2;"
ejectaType= "&vtWreckEjecta;"
attributes= "corporate, corporateCustoms, envAir, envEarth, envFire, envWater, friendly, generic, human, independent, populated"
levelFrequency= "-rurv ----- ----- ----- -----"
locationCriteria= "+planetary"
noArticle= "true"
>
<!-- This defines the graphic used for your station. -->
<Image imageID="&rsStations1;" imageX="256" imageY="384" imageWidth="128" imageHeight="128"/>
<!-- This describes what ships are created at your station when it spawns. It shouldn’t need changed. -->
<Ships>
<Lookup count="2" table="&tbCorpDefenders;"/>
<Lookup count="1d4" table="&tbCommPrivateCrafts;"/>
</Ships>
<!-- This describes what ships will come to your station when the ones at it leave or are destroyed. It shouldn’t need changed. -->
<Reinforcements minShips="4">
<Table>
<Lookup chance="75" table="&tbCorpDefenders;"/>
<Lookup chance="25" table="&tbCommPrivateCrafts;"/>
</Table>
</Reinforcements>
<!-- This is your station’s installed weaponry. -->
<Devices>
<Device deviceID="&itAkan30Cannon;" omnidirectional="true"/>
</Devices>
<!-- This is what your station has for sale.
Replace “+Rassiermesser” with “+YourCorporation”.
If your station sells miscellaneous devices, replace the “w” in criteria with a “d”.
-->
<Items>
<RandomItem count="1d12"
criteria= "w +Rasiermesser; -NotForSale;"
levelFrequency= "systemLevel:u|c|ur"
enhanced= "10"
enhancement= "=(intHPEnhancement2)"
/>
<RandomItem count="2d12"
criteria= "a +Rasiermesser; -NotForSale;"
levelFrequency= "systemLevel:u|c|ur"
enhanced= "10"
enhancement= "=(intHPEnhancement2)"
/>
</Items>
<!-- This section defines what your station will buy or sell.
The priceAdj is a percentage to raise or lower prices from their baseline costs. They probably won’t need changed.
If your station does not buy goods from the player, repair armor, replace armor, or install or remove devices, omit the relevant tags.
-->
<Trade currency="credit" max="50000" replenish="2500">
<Sell criteria="m +rasiermesser; -military; -illegal; -notForSale;" priceAdj="120" inventoryAdj="800"/>
<Sell criteria="*NU -Illegal; -ID; -NotForSale;" priceAdj="120"/>
<Buy criteria="mwU -Illegal; -NotForSale;" priceAdj="60"/>
<Buy criteria="mwU -Illegal; -ID;" priceAdj="10"/>
<RepairArmor criteria="a L:1-7;" priceAdj="100"/>
<ReplaceArmor criteria="a +rasiermesser; L:1-7;" priceAdj="100"/>
<InstallDevice criteria="d +rasiermesser; L:1-7;" priceAdj="100"/>
<RemoveDevice criteria="d L:1-7;" priceAdj="100"/>
<ReplaceArmor criteria="a L:1-7;" priceAdj="unavailable" messageID="descNoInstall"/>
<InstallDevice criteria="d L:1-7;" priceAdj="unavailable" messageID="descNoInstall"/>
</Trade>
<!-- These should not be changed. -->
<Events>
<OnContractGenerate>
(intGenerateIndustrialRequestContract1)
</OnContractGenerate>
<OnContractQuery>True</OnContractQuery>
</Events>
<!-- This should be changed to reflect your station’s name. -->
<StaticData>
<LongName>"a Rasiermesser arms dealer"</LongName>
</StaticData>
<!-- This defines the position of your station’s docking ports. -->
<DockingPorts>
<Port x="0" y="70" />
<Port x="0" y="-70" />
<Port x="50" y="50" />
<Port x="50" y="-50" />
<Port x="70" y="0" />
<Port x="-70" y="0" />
<Port x="-50" y="50" />
<Port x="-50" y="-50" />
</DockingPorts>
<!-- This should be changed to reflect your corporation’s name. -->
<Language>
<Text id="descNoInstall">
(cat
"We only install Rasiermesser items. "
"We cannot install " (itmGetName (@ gData 'item) 0x04) " on your ship."
)
</Text>
<Text id="dockServices:installAbility">
(cat "We install Rasiermesser items up to tech level " (objGetProperty gSource 'installDeviceMaxLevel) ".")
</Text>
</Language>
</StationType>
Code: Select all
<Type UNID="&lbAEMiscellaneousLabels;">
<DisplayAttributes>
<ItemAttribute label="YourCorporation" criteria="* +YourCorporation;"/>
</DisplayAttributes>
</Type>
If there is anything either of us missed, ask one of us for clarification. Also, if you’re wanting examples of code directly from the game or just want to experiment with something we may not have specifically covered, the source code for 1.7 alpha 1 can be found here for you to examine at your leisure.