https://wiki.alioth.net/api.php?action=feedcontributions&user=Galileo&feedformat=atomElite Wiki - User contributions [en]2024-03-29T00:56:01ZUser contributionsMediaWiki 1.31.12https://wiki.alioth.net/index.php?title=Ionics_OXP&diff=4541Ionics OXP2006-08-09T03:13:47Z<p>Galileo: /* Version 1.3 */</p>
<hr />
<div>The '''Ionics OXP''' aims to enhance the northeast corner of Galaxy 2 with a number of interlocking missions revolving around a rich storyline. The OXP also contains 3 new ships available to the player:<br />
<br />
* The [[Ionics Huntsman|Huntsman]]<br />
* The [[Ionics Redback|Redback]]<br />
* The [[Ionics Whitetail|Whitetail]]<br />
<br />
The organisations featured in the OXP are:<br />
<br />
* '''[[The Link]]''', a clandestine organisation that aspires to rid the known Ooniverse of oppressive regimes.<br />
* The '''[[Ramaza Liberation Front]]''', a rebel group opposing the Ramazan government's reign.<br />
* The '''[[Ionics|Ionics Corporation]]''', an aerospace group based in Zaria.<br />
<br />
<br />
==Contributing==<br />
If you are interested in helping out with the OXP, you can contact the author via this articles talk page or on the [http://www.aegidian.org/bb/viewtopic.php?t=1119 Ionics thread] at [http://www.aegidian.org/bb Oolite Bulletins].<br />
<br />
<br />
==Roadmap==<br />
<br />
===Version 1.3===<br />
<br />
:* Set Link Base commodities<br />
:* Add pictures to mission screens<br />
:* Make new ships launch from stations instead of spawning in space<br />
:* Move battle to Link Base <br />
:* Improve spacelane in Zaria etc.<br />
:* Improve Funnelweb (ballturrets, docking bay, etc.)<br />
:* Improve the Link Base (cladding, turrets, lights, warning messages, etc.)<br />
:* <s>External views on all player ships</s><br />
:* <s>All battleships now carry military lasers, fuel injectors and Q-bombs</s><br />
:* <s>Added mission destinations markers on star chart</s><br />
:* <s>Bugfix: Ramaza stats now change universally when war is over</s><br />
<br />
===Version 2.0===<br />
<br />
:* Calculate kills by player<br />
:* Setup ranking system for The Link and award medals<br />
:* Add Link HQ at Bebege<br />
:* Write random mini-missions in sector<br />
:* Assassinate dictator mission<br />
:* War in Legeara<br />
<br />
<br />
==Changelog==<br />
<br />
===Version 1.2.1===<br />
<br />
:* New texture for the Huntsman<br />
:* Bugfix: Don't require ACCEPT_OFFER_1 as condition at Zaria<br />
:* Make some sort of weapons platform for use in the battle (fire plasma, missiles, etc.)<br />
:* Rearranged Ramazan war and improved AI.<br />
<br />
<br />
===Version 1.2===<br />
<br />
:* Fixed ships to suit external view<br />
:* Change planets government & productivity after war<br />
:* 'When the war is over' scripting<br />
:* Fix 'congrats' message coming from Funnelweb<br />
:* Restrict amount of pirates and traders in Ramaza during war<br />
:* Move the Link base and the battle away from the primary station<br />
:* Make the Whitetail bigger (doubled the size)<br />
<br />
===Version 1.1===<br />
<br />
:* Write a readme file<br />
:* Restrict purchase of Ionics ships to galaxy 1<br />
:* Restrict spawning of Ionics ships to galaxy 1<br />
<br />
<br />
== Download ==<br />
<br />
Can be downloaded from [http://oosat.alioth.net/node/44 Oosat2]<br />
<br />
[[Category:Oolite]]</div>Galileohttps://wiki.alioth.net/index.php?title=Bountyhunter&diff=4031Bountyhunter2006-04-17T10:52:53Z<p>Galileo: </p>
<hr />
<div>== Overview ==<br />
Bountyhunters are roguish types that excel at, and often love, combat. Common folk fear them and [[GalCop|law-folk]] think of them as slightly less evil than [[Pirates|pirates]]. They tend to be loners and can often be found lurking in a dark corner of a dive, their back to the wall.<br />
<br />
== In space ==<br />
Often masquerading as a small trader, like you, they can be found everywhere that pirates like to hang out and ambush traders.<br />
<br />
== Favorite vessels ==<br />
Bountyhunters worship military prowess, so their ships are generally [[Iron Ass|armed to the teeth]].<br />
<br />
*[[Adder]]<br />
*[[Asp (Oolite)|Asp Mk.2]]<br />
*[[Cobra Mk.1 (Oolite)|Cobra Mk.1]]<br />
*[[Cobra Mk.3 (Oolite)|Cobra Mk.3]]<br />
*[[Fer-de-Lance (Oolite)|Fer de Lance]]<br />
*[[Krait]]<br />
*[[Sidewinder]]<br />
*Other high powered vessels or ironasses.<br />
<br />
<br />
{{Stub}}<br />
<br />
[[Category:Oolite]]</div>Galileohttps://wiki.alioth.net/index.php?title=Shipdata.plist&diff=4030Shipdata.plist2006-04-17T09:52:21Z<p>Galileo: /* script_actions */</p>
<hr />
<div>'''shipdata.plist''' will provide Oolite with all the definitions necessary to include it as an entity in the game, be it ship, station, freak object or sub-entity [[shipdata_structure|(extra)]]. The following (property) entries are, for order's sake, listed alphabetically:<br />
<br />
<br />
== aft_eject_position ==<br />
Determines the XYZ point on the model from which cargo is ejected.<br />
<br />
Example:<br />
<key>aft_eject_position</key><br />
<string>0.0 -4.5 -23.0</string><br />
<br />
<br />
== ai_type ==<br />
Assigns an AI to the entity. This may be a previously existing AI, or one custom made for the occasion.<br />
<br />
Example:<br />
<key>ai_type</key><br />
<string>pirateAI.plist</string><br />
<br />
<br />
== beacon ==<br />
A special feature for beacons and navigation aids.<br />
The string can be anything - the first letter is what's displayed in the advanced space compass.<br />
<br />
Example: <br />
<key>beacon</key><br />
<string>X-code</string> <br />
<br />
<br />
== bounty ==<br />
Sets a Cr. reward on the NPC's head, and is bound to give it trouble with the law .<br />
<br />
Example:<br />
<key>bounty</key><br />
<integer>50</integer><br />
<br />
<br />
== cargo_carried ==<br />
Determines the type of cargo carried as described in [[commodities.plist]], only one type can be specified. <br />
<br />
Example:<br />
<key>cargo_carried</key><br />
<string>Gold</string><br />
<br />
<br />
== cargo_type ==<br />
Determines if object is indeed cargo (CARGO_RANDOM, CARGO_SLAVES, CARGO_THARGOID) or a ship, as below, which is not cargo. Another notable type of cargo is the scripted item (CARGO_SCRIPTED_ITEM), as examplified by the cloacking device. Only works for randomly generated cargopods. <br />
<br />
Example:<br />
<key>cargo_type</key><br />
<string>CARGO_NOT_CARGO</string><br />
<br />
In v1.63, more controll will be available through the CARGO_CARRIED string. (see also discussion)<br />
<br />
Example:<br />
<key>cargo_type</key> <br />
<string>CARGO_CARRIED</string> <br />
<key>cargo_carried</key> <br />
<string>4 Gold</string><br />
<br />
<br />
== death_actions ==<br />
Gives an oportunity to have a ship do something special as it's dying. <br />
<br />
Example:<br />
<key>death_actions</key><br />
<array><br />
<string>spawn: explosive_shrapnel 1</string><br />
</array><br />
<br />
<br />
== max_defense_ships ==<br />
Designates how many ships a dockable entity (station, carrier) can launch in defense.<br />
<br />
<br />
== defense_ship_role ==<br />
Gives an oportunity to designate a particular (group of) ships that will defend a station/carrier. This has to be specified in the [[Shipdata.plist#roles|roles]] of the ship(s) that are assigned to defend.<br />
<br />
Example:<br />
<key> defense_ship_role </key><br />
<string>carrier_defenders</string><br />
<br />
<br />
== energy_recharge_rate ==<br />
The rate at which energy is replenished. Stations are at 100, Adders at 2..<br />
<br />
Example:<br />
<key>energy_recharge_rate</key><br />
<real>4.5</real><br />
<br />
<br />
== escorts ==<br />
Determines how many escorts an NPC shall have.<br />
<br />
Example:<br />
<key>escorts</key><br />
<integer>4</integer><br />
<br />
<br />
== escort-role ==<br />
Assigns the specific ship type to be the escort, by the ship's role<br />
<br />
Example:<br />
<key>escort-role</key> <br />
<string>my_custom_escort_role</string><br />
<br />
<br />
== escort-ship ==<br />
Assigns the specific ship type to be the escort, by the ship's name.<br />
<br />
Example:<br />
<key>escort-ship</key><br />
<string>cobramk1</string><br />
<br />
<br />
== exhaust ==<br />
The XYZ position(s) of exhaust plume(s), and the XYZ of the plume shape, ergo<br />
<br />
x y z width height length<br />
<br />
'''x y z''' is the position relative to the origin of the main model. <br />
<br />
'''width''' in metres, how wide a plume is on x axis. <br />
<br />
'''height''' in metres, how tall a plume is on y axis.<br />
<br />
'''length''' in metres, how long a plume is on z axis.<br />
<br />
<br />
Below are 2 assigned plumes at coords 5, 0, -25 and -5, 0, -25, and each plume is 6 m wide, 4 m tall and m 10 long<br />
<br />
Example:<br />
<key>exhaust</key><br />
<array><br />
<string>5 0.0 -25 6.0 4.0 10.0</string><br />
<string>-5 0.0 -25 6.0 4.0 10.0</string><br />
</array><br />
<br />
<br />
== extra_cargo ==<br />
New in version 1.62rc3<br />
Cargobay extension size can now be customised.<br />
<br />
Example:<br />
<key>extra_cargo</key><br />
<integer>value</integer<br />
<br />
<br />
== forward_weapon_type ==<br />
Assigns the ship's laser. <br />
Any weapon type from the [[equipment.plist]] can be used (and WEAPON_NONE). <br />
<br />
Example:<br />
<key>forward_weapon_type</key><br />
<string>WEAPON_BEAM_LASER</string><br />
<br />
<br />
== frangible ==<br />
Determines if eventual sub-entities are "loose". By default any given object is already frangible, so the use of this line must be to negate that. <br />
If set to false, the object plus subentities will be regarded as a single object.<br />
If set to true, sub entities can be destroyed seperately from the main object.<br />
<br />
Example:<br />
<key>frangible</key><br />
<false/><br />
<br />
<br />
== fuel ==<br />
Determines an NPC ship's fuel storage, which will affect how it uses its Fuel Injectors.<br />
<br />
Example:<br />
<key>fuel</key><br />
<integer>70</integer><br />
<br />
<br />
== has_ecm ==<br />
Determines if a ship has the E.C.M system installed. By chance factor, or true/false.<br />
<br />
Example:<br />
<key>has_ecm</key><br />
<real>0.5</real><br />
or<br />
<key>has_ecm</key><br />
<false/><br />
<br />
<br />
== has_escape_pod ==<br />
Determines if a ship has an escape pod.<br />
<br />
Example: <br />
<key>has_escape_pod</key><br />
<false/><br />
<br />
<br />
== has_fuel_injection ==<br />
Determines if a ship has the witchdrive fuel injector.<br />
<br />
Example:<br />
<key>has_fuel_injection </key><br />
<real>0.99</real><br />
<br />
<br />
== has_scoop ==<br />
Determines if a ship has a fuel/cargo scoop.<br />
<br />
Example:<br />
<key>has_scoop</key><br />
<false/><br />
<br />
<br />
== has_shield_enhancer ==<br />
Determines if a ship has the coveted shield enhancer.<br />
<br />
Example:<br />
<key>has_shield_enhancer</key><br />
<real>0.45000000000000001</real><br />
<br />
<br />
== hud ==<br />
Used for a playership, to assign another HUD than the default one.<br />
<br />
Example:<br />
<key>hud</key><br />
<string>specialhud.plist</string><br />
<br />
<br />
== laser_color ==<br />
Determines a ship's laser colour. NPCs that is, not the player's laser.<br />
<br />
Example:<br />
<key>laser_color</key><br />
<string>pinkColor</string><br />
<br />
<br />
== like_ship ==<br />
Allows a shipdata entry (of a ship with many matching characteristics to another) to be short and sweet, adopting data of stated ship (name), and allowing for any differences between these ships that will be listed. (It is best not to refer to other references.)<br />
<br />
Example:<br />
<key>like_ship</key><br />
<string>adder</string><br />
<key>max_flight_speed</key><br />
<real>700</real><br />
<key>name</key><br />
<string>Freak Turbo Adder</string><br />
<br />
<br />
== likely_cargo ==<br />
Sets a probable number of tons cargo carried by an NPC, as something else than the stated maximum cargo limit.<br />
<br />
Example:<br />
<key>likely_cargo</key><br />
<integer>2</integer><br />
<br />
<br />
== max_cargo ==<br />
Sets the ship's cargo limit.<br />
<br />
Example:<br />
<key>max_cargo</key><br />
<integer>5</integer><br />
<br />
<br />
== max_energy ==<br />
Sets the ship's energy value.<br />
<br />
Example:<br />
<key>max_energy</key><br />
<real>300</real><br />
<br />
<br />
== max_flight_pitch ==<br />
Sets pitch factor. Will usually range from a sluggish 0.6 to a very sensitive 3.0<br />
<br />
Example:<br />
<key>max_flight_pitch</key><br />
<real>2.2</real><br />
<br />
<br />
== max_flight_roll ==<br />
Sets roll factor. Will usually range from 0.8 to 4.6.<br />
<br />
Example:<br />
<key>max_flight_roll</key><br />
<real>4.2000000000000002</real><br />
<br />
<br />
== max_flight_speed ==<br />
Sets the model's top speed. Interceptors fly at 520 (0.52 LM), Shuttles at 80.<br />
<br />
Example:<br />
<key>max_flight_speed</key><br />
<real>320</real><br />
<br />
<br />
== max_missiles ==<br />
Sets a ship's missile limit.<br />
<br />
Example:<br />
<key>max_missiles</key><br />
<integer>1</integer><br />
<br />
<br />
== missile_launch_position ==<br />
Determines the XYZ point on the model from which a missile is launched.<br />
<br />
Example:<br />
<key>missile_launch_position</key><br />
<string>0.0 -2.25 10.0</string><br />
<br />
<br />
== missiles ==<br />
Sets a ship's probable number of missiles.<br />
<br />
Example:<br />
<key>missiles</key><br />
<integer>0</integer><br />
<br />
<br />
== model ==<br />
Assigns the entity's corresponding '''.dat''' file that will be found with the exact same name in the ''Models'' folder.<br />
<br />
Example:<br />
<key>model</key><br />
<string>example_ship.dat</string><br />
<br />
<br />
== name ==<br />
States the model's name as it will be known to the ID computer.<br />
<br />
Example:<br />
<key>name</key><br />
<string>ExampleShip Mark IX</string><br />
<br />
<br />
== roles ==<br />
Assigns which [[role]](s) the entity should have, that can correspond to one specific, exclusive use, or several.<br />
<br />
In the example below the ship in question will be considered twice as often (2.0) when a trader is called for, only one quarter as often (0.25) when looking for a hunter, and as often as any other pirate ships when looking for a pirate.<br />
<br />
Example:<br />
<key>roles</key><br />
<string>hunter(0.25) trader(2.0) pirate</string><br />
<br />
or simply<br />
<br />
<key>roles</key><br />
<string>just_custom_role</string><br />
<br />
<br />
== rotational_velocity ==<br />
May be applied to a sub-entity, like the following entry to the [[Weeviloid 2]]s spines.<br />
Takes the form of [[Quaternions]], below example enables rotation around the Z-axis.<br />
<br />
Example:<br />
<key>rotational_velocity</key><br />
<string>0.707 0.0 0.0 0.707</string><br />
<br />
<br />
== scanClass ==<br />
Will alter the model's appearance on the [[IFF system]]. If this line is omitted, it will become by default a standard ship entity, appearing as yellow flag on the radar. There are other options.<br />
* CLASS_BUOY<br />
* CLASS_CARGO<br />
* CLASS_MILITARY<br />
* CLASS_MISSILE<br />
* CLASS_POLICE<br />
* CLASS_ROCK<br />
* CLASS_STATION<br />
* CLASS_THARGOID<br />
<br />
<br />
==== Developer Note ====<br />
Oolite uses scanClass internally to determine the behaviour of some ships (particularly with regard to who may shoot whom without incurring legal penatlties). Bear this in mind and don't allocate CLASS_POLICE or CLASS_THARGOID to ships lightly!<br />
<br />
Example:<br />
<key>scanClass</key><br />
<string>CLASS_ROCK</string><br />
<br />
<br />
== script_actions ==<br />
Gives an oportunity to insert events such as in [[script.plist]], to involve a specific shipdata entity. As seen in the following example, this particular object checks if Player has a cloaking device, and if not, will award it. Should Player already have it, the gift will be in gold.<br />
<br />
Example:<br />
<key>script_actions</key><br />
<array><br />
<string>debugOn</string><br />
<string>testForEquipment: EQ_CLOAKING_DEVICE</string><br />
<dict><br />
<key>conditions</key><br />
<array><br />
<string>foundEquipment_bool equal NO</string><br />
</array><br />
<key>do</key><br />
<array><br />
<string>awardEquipment: EQ_CLOAKING_DEVICE</string><br />
</array><br />
</dict><br />
<dict><br />
<key>conditions</key><br />
<array><br />
<string>foundEquipment_bool equal YES</string><br />
</array><br />
<key>do</key><br />
<array><br />
<string>awardCargo: 100 Gold</string><br />
</array><br />
</dict><br />
<string>debugOff</string><br />
</array><br />
<br />
== setup_actions ==<br />
Arranges a process that may be necessary for some objects, like ball turrets..<br />
<br />
Example:<br />
<key>setup_actions</key><br />
<array><br />
<string>initialiseTurret</string><br />
</array><br />
<br />
<br />
== smooth ==<br />
Determines if the model will have magic smoothening method applied (very rare).<br />
<br />
Example:<br />
<key>smooth</key><br />
<true/><br />
<br />
<br />
== subentities ==<br />
Can assign other objects, lights and turrets, to be associated with the model. The first three numbers are XYZ positions, however, controlling positioning of enslaved objects is done by means of [[quaternions]]. <br />
<br />
Lights follow their own recipe.<br />
*FLASHER* x y z hue speed offset size<br />
<br />
'''x y z''' is the position relative to the origin of the main model. <br />
<br />
'''hue''' describes the colour of the light as a position on a color wheel. <br />
<br />
'''speed''' describes how fast the light pulses (on a sine wave) in Hertz (at 0 the light constantly lit)<br />
<br />
'''offset''' is the offset to the sine wave (0..1) to time-shift each light <br />
<br />
'''size''' is the size of the light's corona in metres<br />
<br />
Example:<br />
<key>subentities</key><br />
<array><br />
<string>mySubEntity 0 -5 10 1 0 0 0</string><br />
<string>*FLASHER* 0 5.5 10 30.0 1 0.0 12</string><br />
</array><br />
<br />
note: armed subentities always fire along their Z-axis. When rotating along the Z(t=0)-axis.<br />
<br />
<br />
== thrust ==<br />
Gives the entity an 'inertia' value, translating size and speed into a form of velocity. 0 for rocks and cargo, 50 for a very fast ship, 100 for a station..<br />
<br />
Example:<br />
<key>thrust</key><br />
<real>25</real><br />
<br />
<br />
== view_position_.. ==<br />
Sets the ship's 4 point-of-view positions in XYZ relative to the model.<br />
<br />
Example:<br />
<key>view_position_aft</key><br />
<string>0.0 5.0 -20.0</string><br />
<key>view_position_forward</key><br />
<string>0.0 1.9375 5.0</string><br />
<key>view_position_port</key><br />
<string>-11.85 2.825 -3.5</string><br />
<key>view_position_starboard</key><br />
<string>11.85 2.825 -3.5</string><br />
<br />
<br />
== weapon_energy ==<br />
Gives a weapon energy value to the ship's laser that is different than the default.<br />
<br />
Example:<br />
<key>weapon_energy</key><br />
<real>15</real><br />
<br />
<br />
== weapon_offset ==<br />
must ask Aegidian. does it make a poor shot?<br />
<br />
Example:<br />
<key>weapon_offset_x</key><br />
<real>10</real><br />
<br />
<br />
== weapon_position_.. ==<br />
Plots the 'gunmouth' points of the model's 4 potential lasers.<br />
<br />
Example:<br />
<key>weapon_position_aft</key><br />
<string>0.0 -5.0 -20.0</string><br />
<key>weapon_position_forward</key><br />
<string>0.0 0.0417 16.6667</string><br />
<key>weapon_position_port</key><br />
<string>-13.75 -2.0625 -1.875</string><br />
<key>weapon_position_starboard</key><br />
<string>13.75 -2.0625 -1.875</string><br />
<br />
<br />
<br />
--------------------------------------------------------------------------------<br />
[[Category:Oolite]]</div>Galileohttps://wiki.alioth.net/index.php?title=Ionics_Huntsman&diff=4006Ionics Huntsman2006-04-16T08:19:20Z<p>Galileo: </p>
<hr />
<div>{{Infobox ShipStats Oolite| title=Ionics Huntsman<br />
|image = [[Image:Huntsman.png|250px]]<br />
|dimensions = 60 x 20 x 58<br />
|capacity = 20 TC<br />
|gunmounts = Fore, Aft<br />
|maxspeed = 0.35 LM<br />
|maneuverability = Roll: 2.00<br />Pitch: 1.00<br />
|energybanks = N/A<br />
|milshields = Available<br />
|shieldboost = Available<br />
|hyperspace = Yes<br />
|isoxp = OXP<br />
|isplayer = Yes<br />
}}<br />
<br />
==Overview==<br />
The first ship manufactured by the [[Ionics|Ionics Corporation]]. First produced in 3065 and withdrawn from the market in 3081 due to poor sales. It was replaced by the [[Ionics_Whitetail|Whitetail]].<br />
<br />
== Download ==<br />
<br />
:* [http://oosat.alioth.net/node/44 Download the Ionics OXP from Oosat]<br />
<br />
:* [[Ionics OXP|Ionics OXP Development Page]]<br />
<br />
[[Category:Oolite]]<br />
{{stub}}</div>Galileohttps://wiki.alioth.net/index.php?title=Oolite_Missions_Old&diff=4005Oolite Missions Old2006-04-16T08:06:53Z<p>Galileo: /* OXP */</p>
<hr />
<div>== Mission Index==<br />
=== Native ===<br />
* ''Cloaking Device'' <br />
* ''Constrictor Hunt'' <br />
* ''Nova''<br />
* ''Thargoid Plans''<br />
* ''Trumbles''<br />
<br />
=== OXP ===<br />
(Click to go to Oosat2 Mission download page)<br />
<br />
<br />
* [http://oosat.alioth.net/node/27 ''Deposed''] - A series of linked missions in Galaxy 4.<br />
<br />
* [http://oosat.alioth.net/node/44''Ionics''] - A series of missions in Galaxy 2.<br />
<br />
* [http://capnhack.com/hosting/oolite/Oolite/OXPs/spyhunter.zip ''Spyhunter''] - A mission for the Galactic Navy, to hunt down a rival galactic agency spy. ('''[[NOTE]]: Version 1 contains a bug''', while waiting for an update on the Oosat sites, you can fix it yourself or PM Rxke, see: http://aegidian.org/bb/viewtopic.php?t=1161 )<br />
<br />
* [http://oosat.alioth.net/node/30''ThargoidWars''] - War with the Thargoids intensifies again, with new attack missions.<br />
<br />
* [http://oosat.alioth.net/node/9 ''The Longway Mission''] - Well suited for a Galaxy 1 novice Ooliteer.<br />
<br />
* [http://oosat.alioth.net/node/45 ''The Scourge of the Black Baron''] - Galaxy 1 High Adventure.<br />
<br />
{{spoiler}}<br />
<br />
== Mission Requirements==<br />
<br />
<br />
=== Native===<br />
<br />
<br />
====Cloaking Device====<br />
Takes place in Galaxy 5.<br />
<br />
====Constrictor Hunt====<br />
Must have 256 kills, while still in Galaxy 1 or 2. <br />
<br />
====Nova====<br />
Must have Galactic Hyperdrive, while in Galaxy 4.<br />
<br />
====Thargoid Plans====<br />
Must have 1281 kills, while in Galaxy 3. <br />
<br />
====Trumbles====<br />
Starts at a 6553.5 Cr. purse.<br />
<br />
<br />
=== OXP===<br />
<br />
====Deposed====<br />
Must have 1700 kills, begins at any station you are docked at in Galaxy 4.<br />
<br />
====Ionics====<br />
Begins at Zaria in Galaxy 2.<br />
<br />
====Spyhunter====<br />
Must have 512 kills, begins at Inines in Galaxy 1.<br />
<br />
====ThargoidWars====<br />
Begins when docked while ''not'' in Galaxy 1.<br />
<br />
====The Longway Mission====<br />
Begins at Biarge in Galaxy 1.<br />
<br />
====The Scourge of the Black Baron====<br />
Must complete "Longway Mission"<br />
<br />
Begins at Teesdi in Galaxy 1.<br />
<br />
== Certain SPOILER facts==<br />
{{spoiler}}<br />
<br />
==== Trumbles====<br />
Hint: Trumbles are best served hot.<br />
<br />
--------------------------------------------------------------------------------<br />
[[Category:Oolite]]</div>Galileohttps://wiki.alioth.net/index.php?title=Shipdata.plist&diff=3965Shipdata.plist2006-04-09T08:13:34Z<p>Galileo: /* exhaust */</p>
<hr />
<div>'''shipdata.plist''' will provide Oolite with all the definitions necessary to include it as an entity in the game, be it ship, station, freak object or sub-entity [[shipdata_structure|(extra)]]. The following (property) entries are, for order's sake, listed alphabetically:<br />
<br />
== aft_eject_position ==<br />
Determines the XYZ point on the model from which cargo is ejected.<br />
<br />
<br />
Example:<br />
<key>aft_eject_position</key><br />
<string>0.0 -4.5 -23.0</string><br />
<br />
<br />
== ai_type ==<br />
Assigns an AI to the entity. This may be a previously existing AI, or one custom made for the occasion.<br />
<br />
<br />
Example:<br />
<key>ai_type</key><br />
<string>pirateAI.plist</string><br />
<br />
== beacon ==<br />
A special feature for beacons and navigation aids.<br />
The string can be anything - the first letter is what's displayed in the advanced space compass.<br />
<br />
Example: <br />
<key>beacon</key><br />
<string>X-code</string> <br />
<br />
<br />
== bounty ==<br />
Sets a Cr. reward on the NPC's head, and is bound to give it trouble with the law .<br />
<br />
<br />
Example:<br />
<key>bounty</key><br />
<integer>50</integer><br />
<br />
<br />
== cargo_carried ==<br />
Determines the type of cargo carried as described in [[commodities.plist]], only one type can be specified. <br />
<br />
Example:<br />
<key>cargo_carried</key><br />
<string>Gold</string><br />
<br />
== cargo_type ==<br />
Determines if object is indeed cargo (CARGO_RANDOM, CARGO_SLAVES, CARGO_THARGOID) or a ship, as below, which is not cargo. Another notable type of cargo is the scripted item (CARGO_SCRIPTED_ITEM), as examplified by the cloacking device. Only works for randomly generated cargopods. <br />
<br />
<br />
Example:<br />
<key>cargo_type</key><br />
<string>CARGO_NOT_CARGO</string><br />
<br />
<br />
In v1.63, more controll will be available through the CARGO_CARRIED string. (see also discussion)<br />
<br />
<br />
Example:<br />
<key>cargo_type</key> <br />
<string>CARGO_CARRIED</string> <br />
<key>cargo_carried</key> <br />
<string>4 Gold</string><br />
<br />
== death_actions ==<br />
Gives an oportunity to have a ship do something special as it's dying. <br />
<br />
<br />
Example:<br />
<key>death_actions</key><br />
<array><br />
<string>spawn: explosive_shrapnel 1</string><br />
</array><br />
<br />
== max_defense_ships ==<br />
???<br />
<br />
== defense_ship_role ==<br />
???<br />
<br />
== energy_recharge_rate ==<br />
The rate at which energy is replenished. Stations are at 100, Adders at 2..<br />
<br />
<br />
Example:<br />
<key>energy_recharge_rate</key><br />
<real>4.5</real><br />
<br />
<br />
== escorts ==<br />
Determines how many escorts an NPC shall have.<br />
<br />
<br />
Example:<br />
<key>escorts</key><br />
<integer>4</integer><br />
<br />
<br />
== escort-role ==<br />
Assigns the specific ship type to be the escort, by the ship's role<br />
<br />
<br />
Example:<br />
<key>escort-role</key> <br />
<string>my_custom_escort_role</string><br />
<br />
<br />
== escort-ship ==<br />
Assigns the specific ship type to be the escort, by the ship's name.<br />
<br />
<br />
Example:<br />
<key>escort-ship</key><br />
<string>cobramk1</string><br />
<br />
<br />
== exhaust ==<br />
The XYZ position(s) of exhaust plume(s), and the XYZ of the plume shape, ergo<br />
<br />
x y z width height length<br />
<br />
'''x y z''' is the position relative to the origin of the main model. <br />
<br />
'''width''' in metres, how wide a plume is on x axis. <br />
<br />
'''height''' in metres, how tall a plume is on y axis.<br />
<br />
'''length''' in metres, how long a plume is on z axis.<br />
<br />
<br />
Below are 2 assigned plumes at coords 5, 0, -25 and -5, 0, -25, and each plume is 6 m wide, 4 m tall and m 10 long<br />
<br />
<br />
Example:<br />
<key>exhaust</key><br />
<array><br />
<string>5 0.0 -25 6.0 4.0 10.0</string><br />
<string>-5 0.0 -25 6.0 4.0 10.0</string><br />
</array><br />
<br />
== extra_cargo ==<br />
New in version 1.62rc3<br />
Cargobay extension size can now be customised.<br />
<br />
<br />
Example:<br />
<key>extra_cargo</key><br />
<integer>value</integer<br />
<br />
== forward_weapon_type ==<br />
Assigns the ship's laser. <br />
Any weapon type from the [[equipment.plist]] can be used (and WEAPON_NONE). <br />
<br />
<br />
Example:<br />
<key>forward_weapon_type</key><br />
<string>WEAPON_BEAM_LASER</string><br />
<br />
== frangible ==<br />
Determines if eventual sub-entities are "loose". By default any given object is already frangible, so the use of this line must be to negate that. <br />
If set to false, the object plus subentities will be regarded as a single object.<br />
If set to true, sub entities can be destroyed seperately from the main object.<br />
<br />
<br />
Example:<br />
<key>frangible</key><br />
<false/><br />
<br />
== fuel ==<br />
Determines a ship's fuel storage.<br />
<br />
<br />
Example:<br />
<key>fuel</key><br />
<integer>70</integer><br />
<br />
<br />
== has_ecm ==<br />
Determines if a ship has the E.C.M system installed. By chance factor, or true/false.<br />
<br />
<br />
Example:<br />
<key>has_ecm</key><br />
<real>0.5</real><br />
or<br />
<key>has_ecm</key><br />
<false/><br />
<br />
<br />
== has_escape_pod ==<br />
Determines if a ship has an escape pod.<br />
<br />
<br />
Example: <br />
<key>has_escape_pod</key><br />
<false/><br />
<br />
<br />
== has_fuel_injection ==<br />
Determines if a ship has the witchdrive fuel injector.<br />
<br />
<br />
Example:<br />
<key>has_fuel_injection </key><br />
<real>0.99</real><br />
<br />
== has_scoop ==<br />
Determines if a ship has a fuel/cargo scoop.<br />
<br />
<br />
Example:<br />
<key>has_scoop</key><br />
<false/><br />
<br />
== has_shield_enhancer ==<br />
Determines if a ship has the coveted shield enhancer.<br />
<br />
<br />
Example:<br />
<key>has_shield_enhancer</key><br />
<real>0.45000000000000001</real><br />
<br />
<br />
== hud ==<br />
Used for a playership, to assign another HUD than the default one.<br />
<br />
<br />
Example:<br />
<key>hud</key><br />
<string>specialhud.plist</string><br />
<br />
<br />
== laser_color ==<br />
Determines a ship's laser colour. NPCs that is, not the player's laser.<br />
<br />
<br />
Example:<br />
<key>laser_color</key><br />
<string>pinkColor</string><br />
<br />
<br />
== like_ship ==<br />
Allows a shipdata entry (of a ship with many matching characteristics to another) to be short and sweet, adopting data of stated ship (name), and allowing for any differences between these ships that will be listed. (It is best not to refer to other references.)<br />
<br />
<br />
Example:<br />
<key>like_ship</key><br />
<string>adder</string><br />
<key>max_flight_speed</key><br />
<real>700</real><br />
<key>name</key><br />
<string>Freak Turbo Adder</string><br />
<br />
== likely_cargo ==<br />
Sets a probable number of tons cargo carried by an NPC, as something else than the stated maximum cargo limit.<br />
<br />
<br />
Example:<br />
<key>likely_cargo</key><br />
<integer>2</integer><br />
<br />
<br />
== max_cargo ==<br />
Sets the ship's cargo limit.<br />
<br />
<br />
Example:<br />
<key>max_cargo</key><br />
<integer>5</integer><br />
<br />
<br />
== max_energy ==<br />
Sets the ship's energy value.<br />
<br />
<br />
Example:<br />
<key>max_energy</key><br />
<real>300</real><br />
<br />
<br />
== max_flight_pitch ==<br />
Sets pitch factor. Will usually range from a sluggish 0.6 to a very sensitive 3.0<br />
<br />
<br />
Example:<br />
<key>max_flight_pitch</key><br />
<real>2.2</real><br />
<br />
<br />
== max_flight_roll ==<br />
Sets roll factor. Will usually range from 0.8 to 4.6.<br />
<br />
<br />
Example:<br />
<key>max_flight_roll</key><br />
<real>4.2000000000000002</real><br />
<br />
<br />
== max_flight_speed ==<br />
Sets the model's top speed. Interceptors fly at 520 (0.52 LM), Shuttles at 80.<br />
<br />
<br />
Example:<br />
<key>max_flight_speed</key><br />
<real>320</real><br />
<br />
<br />
== max_missiles ==<br />
Sets a ship's missile limit.<br />
<br />
<br />
Example:<br />
<key>max_missiles</key><br />
<integer>1</integer><br />
<br />
<br />
== missile_launch_position ==<br />
Determines the XYZ point on the model from which a missile is launched.<br />
<br />
<br />
Example:<br />
<key>missile_launch_position</key><br />
<string>0.0 -2.25 10.0</string><br />
<br />
<br />
== missiles ==<br />
Sets a ship's probable number of missiles.<br />
<br />
<br />
Example:<br />
<key>missiles</key><br />
<integer>0</integer><br />
<br />
<br />
== model ==<br />
Assigns the entity's corresponding '''.dat''' file that will be found with the exact same name in the ''Models'' folder.<br />
<br />
<br />
Example:<br />
<key>model</key><br />
<string>example_ship.dat</string><br />
<br />
<br />
== name ==<br />
States the model's name as it will be known to the ID computer.<br />
<br />
<br />
Example:<br />
<key>name</key><br />
<string>ExampleShip Mark IX</string><br />
<br />
<br />
== roles ==<br />
Assigns which [[role]](s) the entity should have, that can correspond to one specific, exclusive use, or several.<br />
<br />
In the example below the ship in question will be considered twice as often (2.0) when a trader is called for, only one quarter as often (0.25) when looking for a hunter, and as often as any other pirate ships when looking for a pirate.<br />
<br />
<br />
Example:<br />
<key>roles</key><br />
<string>hunter(0.25) trader(2.0) pirate</string><br />
<br />
or simply<br />
<br />
<key>roles</key><br />
<string>just_custom_role</string><br />
<br />
== rotational_velocity ==<br />
May be applied to a sub-entity, like the following entry to the [[Weeviloid 2]]s spines.<br />
Takes the form of [[Quaternions]], below example enables rotation around the Z-axis.<br />
<br />
<br />
Example:<br />
<key>rotational_velocity</key><br />
<string>0.707 0.0 0.0 0.707</string><br />
<br />
== scanClass ==<br />
Will alter the model's appearance on the [[IFF system]]. If this line is omitted, it will become by default a standard ship entity, appearing as yellow flag on the radar. There are other options.<br />
* CLASS_BUOY<br />
* CLASS_CARGO<br />
* CLASS_MILITARY<br />
* CLASS_MISSILE<br />
* CLASS_POLICE<br />
* CLASS_ROCK<br />
* CLASS_STATION<br />
* CLASS_THARGOID<br />
<br />
==== Developer Note ====<br />
Oolite uses scanClass internally to determine the behaviour of some ships (particularly with regard to who may shoot whom without incurring legal penatlties). Bear this in mind and don't allocate CLASS_POLICE or CLASS_THARGOID to ships lightly!<br />
<br />
Example:<br />
<key>scanClass</key><br />
<string>CLASS_ROCK</string><br />
<br />
== script_actions ==<br />
Gives an oportunity to insert events such as in [[script.plist]], to involve a specific shipdata entity. As seen in the following example, this particular object checks if Player has a cloaking device, and if not, will award it. Should Player already have it, the gift will be in gold.<br />
<br />
<br />
Example:<br />
<key>script_actions</key><br />
<array><br />
<string>debugOn</string><br />
<string>testForEquipment: EQ_CLOAKING_DEVICE</string><br />
<dict><br />
<key>conditions</key><br />
<array><br />
<string>foundEquipment_bool equal NO</string><br />
</array><br />
<key>do</key><br />
<array><br />
<string>awardEquipment: EQ_CLOAKING_DEVICE</string><br />
</array><br />
</dict><br />
<dict><br />
<key>conditions</key><br />
<array><br />
<string>foundEquipment_bool equal YES</string><br />
</array><br />
<key>do</key<br />
<array><br />
<string>awardCargo: 100 Gold</string><br />
</array><br />
</dict><br />
<string>debugOff</string><br />
</array><br />
<br />
<br />
== setup_actions ==<br />
Arranges a process that may be necessary for some objects, like ball turrets..<br />
<br />
<br />
Example:<br />
<key>setup_actions</key><br />
<array><br />
<string>initialiseTurret</string><br />
</array><br />
<br />
<br />
== smooth ==<br />
Determines if the model will have magic smoothening method applied (very rare).<br />
<br />
<br />
Example:<br />
<key>smooth</key><br />
<true/><br />
<br />
<br />
== subentities ==<br />
Can assign other objects, lights and turrets, to be associated with the model. The first three numbers are XYZ positions, however, controlling positioning of enslaved objects is done by means of [[quaternions]]. <br />
<br />
Lights follow their own recipe.<br />
*FLASHER* x y z hue speed offset size<br />
<br />
'''x y z''' is the position relative to the origin of the main model. <br />
<br />
'''hue''' describes the colour of the light as a position on a color wheel. <br />
<br />
'''speed''' describes how fast the light pulses (on a sine wave) in Hertz (at 0 the light constantly lit)<br />
<br />
'''offset''' is the offset to the sine wave (0..1) to time-shift each light <br />
<br />
'''size''' is the size of the light's corona in metres<br />
<br />
<br />
Example:<br />
<key>subentities</key><br />
<array><br />
<string>mySubEntity 0 -5 10 1 0 0 0</string><br />
<string>*FLASHER* 0 5.5 10 30.0 1 0.0 12</string><br />
</array><br />
<br />
note: armed subentities always fire along their Z-axis. When rotating along the Z(t=0)-axis.<br />
<br />
== thrust ==<br />
Gives the entity an 'inertia' value, translating size and speed into a form of velocity. 0 for rocks and cargo, 50 for a very fast ship, 100 for a station..<br />
<br />
<br />
Example:<br />
<key>thrust</key><br />
<real>25</real><br />
<br />
<br />
== view_position_.. ==<br />
Sets the ship's 4 view positions in XYZ relative to the model.<br />
<br />
<br />
Example:<br />
<key>view_position_aft</key><br />
<string>0.0 5.0 -20.0</string><br />
<key>view_position_forward</key><br />
<string>0.0 1.9375 5.0</string><br />
<key>view_position_port</key><br />
<string>-11.85 2.825 -3.5</string><br />
<key>view_position_starboard</key><br />
<string>11.85 2.825 -3.5</string><br />
<br />
<br />
== weapon_energy ==<br />
Gives a weapon energy value to the ship's laser that is different than the default.<br />
<br />
<br />
Example:<br />
<key>weapon_energy</key><br />
<real>15</real><br />
<br />
<br />
== weapon_offset ==<br />
must ask Aegidian. does it make a poor shot?<br />
<br />
<br />
Example:<br />
<key>weapon_offset_x</key><br />
<real>10</real><br />
<br />
<br />
== weapon_position_.. ==<br />
Plots the 'gunmouth' points of the model's 4 potential lasers.<br />
<br />
<br />
Example:<br />
<key>weapon_position_aft</key><br />
<string>0.0 -5.0 -20.0</string><br />
<key>weapon_position_forward</key><br />
<string>0.0 0.0417 16.6667</string><br />
<key>weapon_position_port</key><br />
<string>-13.75 -2.0625 -1.875</string><br />
<key>weapon_position_starboard</key><br />
<string>13.75 -2.0625 -1.875</string><br />
<br />
<br />
<br />
--------------------------------------------------------------------------------<br />
[[Category:Oolite]]</div>Galileohttps://wiki.alioth.net/index.php?title=Shipdata.plist&diff=3964Shipdata.plist2006-04-09T06:20:42Z<p>Galileo: </p>
<hr />
<div>'''shipdata.plist''' will provide Oolite with all the definitions necessary to include it as an entity in the game, be it ship, station, freak object or sub-entity [[shipdata_structure|(extra)]]. The following (property) entries are, for order's sake, listed alphabetically:<br />
<br />
== aft_eject_position ==<br />
Determines the XYZ point on the model from which cargo is ejected.<br />
<br />
<br />
Example:<br />
<key>aft_eject_position</key><br />
<string>0.0 -4.5 -23.0</string><br />
<br />
<br />
== ai_type ==<br />
Assigns an AI to the entity. This may be a previously existing AI, or one custom made for the occasion.<br />
<br />
<br />
Example:<br />
<key>ai_type</key><br />
<string>pirateAI.plist</string><br />
<br />
== beacon ==<br />
A special feature for beacons and navigation aids.<br />
The string can be anything - the first letter is what's displayed in the advanced space compass.<br />
<br />
Example: <br />
<key>beacon</key><br />
<string>X-code</string> <br />
<br />
<br />
== bounty ==<br />
Sets a Cr. reward on the NPC's head, and is bound to give it trouble with the law .<br />
<br />
<br />
Example:<br />
<key>bounty</key><br />
<integer>50</integer><br />
<br />
<br />
== cargo_carried ==<br />
Determines the type of cargo carried as described in [[commodities.plist]], only one type can be specified. <br />
<br />
Example:<br />
<key>cargo_carried</key><br />
<string>Gold</string><br />
<br />
== cargo_type ==<br />
Determines if object is indeed cargo (CARGO_RANDOM, CARGO_SLAVES, CARGO_THARGOID) or a ship, as below, which is not cargo. Another notable type of cargo is the scripted item (CARGO_SCRIPTED_ITEM), as examplified by the cloacking device. Only works for randomly generated cargopods. <br />
<br />
<br />
Example:<br />
<key>cargo_type</key><br />
<string>CARGO_NOT_CARGO</string><br />
<br />
<br />
In v1.63, more controll will be available through the CARGO_CARRIED string. (see also discussion)<br />
<br />
<br />
Example:<br />
<key>cargo_type</key> <br />
<string>CARGO_CARRIED</string> <br />
<key>cargo_carried</key> <br />
<string>4 Gold</string><br />
<br />
== death_actions ==<br />
Gives an oportunity to have a ship do something special as it's dying. <br />
<br />
<br />
Example:<br />
<key>death_actions</key><br />
<array><br />
<string>spawn: explosive_shrapnel 1</string><br />
</array><br />
<br />
== max_defense_ships ==<br />
???<br />
<br />
== defense_ship_role ==<br />
???<br />
<br />
== energy_recharge_rate ==<br />
The rate at which energy is replenished. Stations are at 100, Adders at 2..<br />
<br />
<br />
Example:<br />
<key>energy_recharge_rate</key><br />
<real>4.5</real><br />
<br />
<br />
== escorts ==<br />
Determines how many escorts an NPC shall have.<br />
<br />
<br />
Example:<br />
<key>escorts</key><br />
<integer>4</integer><br />
<br />
<br />
== escort-role ==<br />
Assigns the specific ship type to be the escort, by the ship's role<br />
<br />
<br />
Example:<br />
<key>escort-role</key> <br />
<string>my_custom_escort_role</string><br />
<br />
<br />
== escort-ship ==<br />
Assigns the specific ship type to be the escort, by the ship's name.<br />
<br />
<br />
Example:<br />
<key>escort-ship</key><br />
<string>cobramk1</string><br />
<br />
<br />
== exhaust ==<br />
The XYZ position(s) of exhaust plume(s), and the XYZ of the plume shape, ergo<br />
<br />
x y z width height lenght<br />
<br />
'''x y z''' is the position relative to the origin of the main model. <br />
<br />
'''width''' in metres, how wide a plume is on x axis. <br />
<br />
'''height''' in metres, how tall a plume is on y axis.<br />
<br />
'''lenght''' in metres, how long a plume is on z axis.<br />
<br />
<br />
Below are 2 assigned plumes at coords 5, 0, -25 and -5, 0, -25, and each plume is 6 m wide, 4 m tall and m 10 long<br />
<br />
<br />
Example:<br />
<key>exhaust</key><br />
<array><br />
<string>5 0.0 -25 6.0 4.0 10.0</string><br />
<string>-5 0.0 -25 6.0 4.0 10.0</string><br />
</array><br />
<br />
<br />
== extra_cargo ==<br />
New in version 1.62rc3<br />
Cargobay extension size can now be customised.<br />
<br />
<br />
Example:<br />
<key>extra_cargo</key><br />
<integer>value</integer<br />
<br />
== forward_weapon_type ==<br />
Assigns the ship's laser. <br />
Any weapon type from the [[equipment.plist]] can be used (and WEAPON_NONE). <br />
<br />
<br />
Example:<br />
<key>forward_weapon_type</key><br />
<string>WEAPON_BEAM_LASER</string><br />
<br />
== frangible ==<br />
Determines if eventual sub-entities are "loose". By default any given object is already frangible, so the use of this line must be to negate that. <br />
If set to false, the object plus subentities will be regarded as a single object.<br />
If set to true, sub entities can be destroyed seperately from the main object.<br />
<br />
<br />
Example:<br />
<key>frangible</key><br />
<false/><br />
<br />
== fuel ==<br />
Determines a ship's fuel storage.<br />
<br />
<br />
Example:<br />
<key>fuel</key><br />
<integer>70</integer><br />
<br />
<br />
== has_ecm ==<br />
Determines if a ship has the E.C.M system installed. By chance factor, or true/false.<br />
<br />
<br />
Example:<br />
<key>has_ecm</key><br />
<real>0.5</real><br />
or<br />
<key>has_ecm</key><br />
<false/><br />
<br />
<br />
== has_escape_pod ==<br />
Determines if a ship has an escape pod.<br />
<br />
<br />
Example: <br />
<key>has_escape_pod</key><br />
<false/><br />
<br />
<br />
== has_fuel_injection ==<br />
Determines if a ship has the witchdrive fuel injector.<br />
<br />
<br />
Example:<br />
<key>has_fuel_injection </key><br />
<real>0.99</real><br />
<br />
== has_scoop ==<br />
Determines if a ship has a fuel/cargo scoop.<br />
<br />
<br />
Example:<br />
<key>has_scoop</key><br />
<false/><br />
<br />
== has_shield_enhancer ==<br />
Determines if a ship has the coveted shield enhancer.<br />
<br />
<br />
Example:<br />
<key>has_shield_enhancer</key><br />
<real>0.45000000000000001</real><br />
<br />
<br />
== hud ==<br />
Used for a playership, to assign another HUD than the default one.<br />
<br />
<br />
Example:<br />
<key>hud</key><br />
<string>specialhud.plist</string><br />
<br />
<br />
== laser_color ==<br />
Determines a ship's laser colour. NPCs that is, not the player's laser.<br />
<br />
<br />
Example:<br />
<key>laser_color</key><br />
<string>pinkColor</string><br />
<br />
<br />
== like_ship ==<br />
Allows a shipdata entry (of a ship with many matching characteristics to another) to be short and sweet, adopting data of stated ship (name), and allowing for any differences between these ships that will be listed. (It is best not to refer to other references.)<br />
<br />
<br />
Example:<br />
<key>like_ship</key><br />
<string>adder</string><br />
<key>max_flight_speed</key><br />
<real>700</real><br />
<key>name</key><br />
<string>Freak Turbo Adder</string><br />
<br />
== likely_cargo ==<br />
Sets a probable number of tons cargo carried by an NPC, as something else than the stated maximum cargo limit.<br />
<br />
<br />
Example:<br />
<key>likely_cargo</key><br />
<integer>2</integer><br />
<br />
<br />
== max_cargo ==<br />
Sets the ship's cargo limit.<br />
<br />
<br />
Example:<br />
<key>max_cargo</key><br />
<integer>5</integer><br />
<br />
<br />
== max_energy ==<br />
Sets the ship's energy value.<br />
<br />
<br />
Example:<br />
<key>max_energy</key><br />
<real>300</real><br />
<br />
<br />
== max_flight_pitch ==<br />
Sets pitch factor. Will usually range from a sluggish 0.6 to a very sensitive 3.0<br />
<br />
<br />
Example:<br />
<key>max_flight_pitch</key><br />
<real>2.2</real><br />
<br />
<br />
== max_flight_roll ==<br />
Sets roll factor. Will usually range from 0.8 to 4.6.<br />
<br />
<br />
Example:<br />
<key>max_flight_roll</key><br />
<real>4.2000000000000002</real><br />
<br />
<br />
== max_flight_speed ==<br />
Sets the model's top speed. Interceptors fly at 520 (0.52 LM), Shuttles at 80.<br />
<br />
<br />
Example:<br />
<key>max_flight_speed</key><br />
<real>320</real><br />
<br />
<br />
== max_missiles ==<br />
Sets a ship's missile limit.<br />
<br />
<br />
Example:<br />
<key>max_missiles</key><br />
<integer>1</integer><br />
<br />
<br />
== missile_launch_position ==<br />
Determines the XYZ point on the model from which a missile is launched.<br />
<br />
<br />
Example:<br />
<key>missile_launch_position</key><br />
<string>0.0 -2.25 10.0</string><br />
<br />
<br />
== missiles ==<br />
Sets a ship's probable number of missiles.<br />
<br />
<br />
Example:<br />
<key>missiles</key><br />
<integer>0</integer><br />
<br />
<br />
== model ==<br />
Assigns the entity's corresponding '''.dat''' file that will be found with the exact same name in the ''Models'' folder.<br />
<br />
<br />
Example:<br />
<key>model</key><br />
<string>example_ship.dat</string><br />
<br />
<br />
== name ==<br />
States the model's name as it will be known to the ID computer.<br />
<br />
<br />
Example:<br />
<key>name</key><br />
<string>ExampleShip Mark IX</string><br />
<br />
<br />
== roles ==<br />
Assigns which [[role]](s) the entity should have, that can correspond to one specific, exclusive use, or several.<br />
<br />
In the example below the ship in question will be considered twice as often (2.0) when a trader is called for, only one quarter as often (0.25) when looking for a hunter, and as often as any other pirate ships when looking for a pirate.<br />
<br />
<br />
Example:<br />
<key>roles</key><br />
<string>hunter(0.25) trader(2.0) pirate</string><br />
<br />
or simply<br />
<br />
<key>roles</key><br />
<string>just_custom_role</string><br />
<br />
== rotational_velocity ==<br />
May be applied to a sub-entity, like the following entry to the [[Weeviloid 2]]s spines.<br />
Takes the form of [[Quaternions]], below example enables rotation around the Z-axis.<br />
<br />
<br />
Example:<br />
<key>rotational_velocity</key><br />
<string>0.707 0.0 0.0 0.707</string><br />
<br />
== scanClass ==<br />
Will alter the model's appearance on the [[IFF system]]. If this line is omitted, it will become by default a standard ship entity, appearing as yellow flag on the radar. There are other options.<br />
* CLASS_BUOY<br />
* CLASS_CARGO<br />
* CLASS_MILITARY<br />
* CLASS_MISSILE<br />
* CLASS_POLICE<br />
* CLASS_ROCK<br />
* CLASS_STATION<br />
* CLASS_THARGOID<br />
<br />
==== Developer Note ====<br />
Oolite uses scanClass internally to determine the behaviour of some ships (particularly with regard to who may shoot whom without incurring legal penatlties). Bear this in mind and don't allocate CLASS_POLICE or CLASS_THARGOID to ships lightly!<br />
<br />
Example:<br />
<key>scanClass</key><br />
<string>CLASS_ROCK</string><br />
<br />
== script_actions ==<br />
Gives an oportunity to insert events such as in [[script.plist]], to involve a specific shipdata entity. As seen in the following example, this particular object checks if Player has a cloaking device, and if not, will award it. Should Player already have it, the gift will be in gold.<br />
<br />
<br />
Example:<br />
<key>script_actions</key><br />
<array><br />
<string>debugOn</string><br />
<string>testForEquipment: EQ_CLOAKING_DEVICE</string><br />
<dict><br />
<key>conditions</key><br />
<array><br />
<string>foundEquipment_bool equal NO</string><br />
</array><br />
<key>do</key><br />
<array><br />
<string>awardEquipment: EQ_CLOAKING_DEVICE</string><br />
</array><br />
</dict><br />
<dict><br />
<key>conditions</key><br />
<array><br />
<string>foundEquipment_bool equal YES</string><br />
</array><br />
<key>do</key<br />
<array><br />
<string>awardCargo: 100 Gold</string><br />
</array><br />
</dict><br />
<string>debugOff</string><br />
</array><br />
<br />
<br />
== setup_actions ==<br />
Arranges a process that may be necessary for some objects, like ball turrets..<br />
<br />
<br />
Example:<br />
<key>setup_actions</key><br />
<array><br />
<string>initialiseTurret</string><br />
</array><br />
<br />
<br />
== smooth ==<br />
Determines if the model will have magic smoothening method applied (very rare).<br />
<br />
<br />
Example:<br />
<key>smooth</key><br />
<true/><br />
<br />
<br />
== subentities ==<br />
Can assign other objects, lights and turrets, to be associated with the model. The first three numbers are XYZ positions, however, controlling positioning of enslaved objects is done by means of [[quaternions]]. <br />
<br />
Lights follow their own recipe.<br />
*FLASHER* x y z hue speed offset size<br />
<br />
'''x y z''' is the position relative to the origin of the main model. <br />
<br />
'''hue''' describes the colour of the light as a position on a color wheel. <br />
<br />
'''speed''' describes how fast the light pulses (on a sine wave) in Hertz (at 0 the light constantly lit)<br />
<br />
'''offset''' is the offset to the sine wave (0..1) to time-shift each light <br />
<br />
'''size''' is the size of the light's corona in metres<br />
<br />
<br />
Example:<br />
<key>subentities</key><br />
<array><br />
<string>mySubEntity 0 -5 10 1 0 0 0</string><br />
<string>*FLASHER* 0 5.5 10 30.0 1 0.0 12</string><br />
</array><br />
<br />
note: armed subentities always fire along their Z-axis. When rotating along the Z(t=0)-axis.<br />
<br />
== thrust ==<br />
Gives the entity an 'inertia' value, translating size and speed into a form of velocity. 0 for rocks and cargo, 50 for a very fast ship, 100 for a station..<br />
<br />
<br />
Example:<br />
<key>thrust</key><br />
<real>25</real><br />
<br />
<br />
== view_position_.. ==<br />
Sets the ship's 4 view positions in XYZ relative to the model.<br />
<br />
<br />
Example:<br />
<key>view_position_aft</key><br />
<string>0.0 5.0 -20.0</string><br />
<key>view_position_forward</key><br />
<string>0.0 1.9375 5.0</string><br />
<key>view_position_port</key><br />
<string>-11.85 2.825 -3.5</string><br />
<key>view_position_starboard</key><br />
<string>11.85 2.825 -3.5</string><br />
<br />
<br />
== weapon_energy ==<br />
Gives a weapon energy value to the ship's laser that is different than the default.<br />
<br />
<br />
Example:<br />
<key>weapon_energy</key><br />
<real>15</real><br />
<br />
<br />
== weapon_offset ==<br />
must ask Aegidian. does it make a poor shot?<br />
<br />
<br />
Example:<br />
<key>weapon_offset_x</key><br />
<real>10</real><br />
<br />
<br />
== weapon_position_.. ==<br />
Plots the 'gunmouth' points of the model's 4 potential lasers.<br />
<br />
<br />
Example:<br />
<key>weapon_position_aft</key><br />
<string>0.0 -5.0 -20.0</string><br />
<key>weapon_position_forward</key><br />
<string>0.0 0.0417 16.6667</string><br />
<key>weapon_position_port</key><br />
<string>-13.75 -2.0625 -1.875</string><br />
<key>weapon_position_starboard</key><br />
<string>13.75 -2.0625 -1.875</string><br />
<br />
<br />
<br />
--------------------------------------------------------------------------------<br />
[[Category:Oolite]]</div>Galileohttps://wiki.alioth.net/index.php?title=Ionics_OXP&diff=3963Ionics OXP2006-04-08T14:49:46Z<p>Galileo: /* Version 1.3 */</p>
<hr />
<div>The '''Ionics OXP''' aims to enhance the northeast corner of Galaxy 2 with a number of interlocking missions revolving around a rich storyline. The OXP also contains 3 new ships available to the player:<br />
<br />
* The [[Ionics Huntsman|Huntsman]]<br />
* The [[Ionics Redback|Redback]]<br />
* The [[Ionics Whitetail|Whitetail]]<br />
<br />
The organisations featured in the OXP are:<br />
<br />
* '''[[The Link]]''', a clandestine organisation that aspires to rid the known Ooniverse of oppressive regimes.<br />
* The '''[[Ramaza Liberation Front]]''', a rebel group opposing the Ramazan government's reign.<br />
* The '''[[Ionics|Ionics Corporation]]''', an aerospace group based in Zaria.<br />
<br />
<br />
==Contributing==<br />
If you are interested in helping out with the OXP, you can contact the author via this articles talk page or on the [http://www.aegidian.org/bb/viewtopic.php?t=1119 Ionics thread] at [http://www.aegidian.org/bb Oolite Bulletins].<br />
<br />
<br />
==Roadmap==<br />
<br />
===Version 1.3===<br />
<br />
:* Set Link Base commodities<br />
:* Add pictures to mission screens<br />
:* Make new ships launch from stations instead of spawning in space<br />
:* Move battle to Link Base <br />
:* Improve spacelane in Zaria etc.<br />
:* Add casinos to Cevera<br />
:* Improve Funnelweb (ballturrets, docking bay, etc.)<br />
:* Improve the Link Base (cladding, turrets, lights, warning messages, etc.)<br />
:* Make weapons platform self-destruct on low energy<br />
:* <s>All battleships now carry military lasers, fuel injectors and Q-bombs</s><br />
:* <s>Added mission destinations markers on star chart</s><br />
:* <s>Bugfix: Ramaza stats now change universally when war is over</s><br />
<br />
===Version 2.0===<br />
<br />
:* Calculate kills by player<br />
:* Setup ranking system for The Link and award medals<br />
:* Add Link HQ at Bebege<br />
:* Write random mini-missions in sector<br />
:* Assassinate dictator mission<br />
:* War in Legeara<br />
<br />
<br />
==Changelog==<br />
<br />
===Version 1.2.1===<br />
<br />
:* New texture for the Huntsman<br />
:* Bugfix: Don't require ACCEPT_OFFER_1 as condition at Zaria<br />
:* Make some sort of weapons platform for use in the battle (fire plasma, missiles, etc.)<br />
:* Rearranged Ramazan war and improved AI.<br />
<br />
<br />
===Version 1.2===<br />
<br />
:* Fixed ships to suit external view<br />
:* Change planets government & productivity after war<br />
:* 'When the war is over' scripting<br />
:* Fix 'congrats' message coming from Funnelweb<br />
:* Restrict amount of pirates and traders in Ramaza during war<br />
:* Move the Link base and the battle away from the primary station<br />
:* Make the Whitetail bigger (doubled the size)<br />
<br />
===Version 1.1===<br />
<br />
:* Write a readme file<br />
:* Restrict purchase of Ionics ships to galaxy 1<br />
:* Restrict spawning of Ionics ships to galaxy 1<br />
<br />
<br />
== Download ==<br />
<br />
Can be downloaded from [http://oosat.alioth.net/node/44 Oosat2]<br />
<br />
[[Category:Oolite]]</div>Galileohttps://wiki.alioth.net/index.php?title=Ionics_OXP&diff=3935Ionics OXP2006-04-02T05:06:36Z<p>Galileo: /* Version 1.3 */</p>
<hr />
<div>The '''Ionics OXP''' aims to enhance the northeast corner of Galaxy 2 with a number of interlocking missions revolving around a rich storyline. The OXP also contains 3 new ships available to the player:<br />
<br />
* The [[Ionics Huntsman|Huntsman]]<br />
* The [[Ionics Redback|Redback]]<br />
* The [[Ionics Whitetail|Whitetail]]<br />
<br />
The organisations featured in the OXP are:<br />
<br />
* '''[[The Link]]''', a clandestine organisation that aspires to rid the known Ooniverse of oppressive regimes.<br />
* The '''[[Ramaza Liberation Front]]''', a rebel group opposing the Ramazan government's reign.<br />
* The '''[[Ionics|Ionics Corporation]]''', an aerospace group based in Zaria.<br />
<br />
<br />
==Contributing==<br />
If you are interested in helping out with the OXP, you can contact the author via this articles talk page or on the [http://www.aegidian.org/bb/viewtopic.php?t=1119 Ionics thread] at [http://www.aegidian.org/bb Oolite Bulletins].<br />
<br />
<br />
==Roadmap==<br />
<br />
===Version 1.3===<br />
<br />
:* Set Link Base commodities<br />
:* Add pictures to mission screens<br />
:* Make new ships launch from stations instead of spawning in space<br />
:* Improve spacelane in Zaria etc.<br />
:* Add casinos to Cevera<br />
:* Improve Funnelweb (ballturrets, docking bay, etc.)<br />
:* Improve the Link Base (cladding, turrets, lights, warning messages, etc.)<br />
:* Make weapons platform self-destruct on low energy<br />
:* <s>All battleships now carry military lasers, fuel injectors and Q-bombs</s><br />
<br />
===Version 2.0===<br />
<br />
:* Calculate kills by player<br />
:* Setup ranking system for The Link and award medals<br />
:* Add Link HQ at Bebege<br />
:* Write random mini-missions in sector<br />
:* Assassinate dictator mission<br />
:* War in Legeara<br />
<br />
<br />
==Changelog==<br />
<br />
===Version 1.2.1===<br />
<br />
:* New texture for the Huntsman<br />
:* Bugfix: Don't require ACCEPT_OFFER_1 as condition at Zaria<br />
:* Make some sort of weapons platform for use in the battle (fire plasma, missiles, etc.)<br />
:* Rearranged Ramazan war and improved AI.<br />
<br />
<br />
===Version 1.2===<br />
<br />
:* Fixed ships to suit external view<br />
:* Change planets government & productivity after war<br />
:* 'When the war is over' scripting<br />
:* Fix 'congrats' message coming from Funnelweb<br />
:* Restrict amount of pirates and traders in Ramaza during war<br />
:* Move the Link base and the battle away from the primary station<br />
:* Make the Whitetail bigger (doubled the size)<br />
<br />
===Version 1.1===<br />
<br />
:* Write a readme file<br />
:* Restrict purchase of Ionics ships to galaxy 1<br />
:* Restrict spawning of Ionics ships to galaxy 1<br />
<br />
<br />
== Download ==<br />
<br />
Can be downloaded from [http://oosat.alioth.net/node/44 Oosat2]<br />
<br />
[[Category:Oolite]]</div>Galileohttps://wiki.alioth.net/index.php?title=Ionics_OXP&diff=3934Ionics OXP2006-04-01T10:56:59Z<p>Galileo: Version 1.2.1</p>
<hr />
<div>The '''Ionics OXP''' aims to enhance the northeast corner of Galaxy 2 with a number of interlocking missions revolving around a rich storyline. The OXP also contains 3 new ships available to the player:<br />
<br />
* The [[Ionics Huntsman|Huntsman]]<br />
* The [[Ionics Redback|Redback]]<br />
* The [[Ionics Whitetail|Whitetail]]<br />
<br />
The organisations featured in the OXP are:<br />
<br />
* '''[[The Link]]''', a clandestine organisation that aspires to rid the known Ooniverse of oppressive regimes.<br />
* The '''[[Ramaza Liberation Front]]''', a rebel group opposing the Ramazan government's reign.<br />
* The '''[[Ionics|Ionics Corporation]]''', an aerospace group based in Zaria.<br />
<br />
<br />
==Contributing==<br />
If you are interested in helping out with the OXP, you can contact the author via this articles talk page or on the [http://www.aegidian.org/bb/viewtopic.php?t=1119 Ionics thread] at [http://www.aegidian.org/bb Oolite Bulletins].<br />
<br />
<br />
==Roadmap==<br />
<br />
===Version 1.3===<br />
<br />
:* Set Link Base commodities<br />
:* Add pictures to mission screens<br />
:* Make new ships launch from stations instead of spawning in space<br />
:* Improve spacelane in Zaria etc.<br />
:* Add casinos to Cevera<br />
:* Improve Funnelweb (ballturrets, docking bay, etc.)<br />
:* Improve the Link Base (cladding, turrets, lights, warning messages, etc.)<br />
<br />
<br />
===Version 2.0===<br />
<br />
:* Calculate kills by player<br />
:* Setup ranking system for The Link and award medals<br />
:* Add Link HQ at Bebege<br />
:* Write random mini-missions in sector<br />
:* Assassinate dictator mission<br />
:* War in Legeara<br />
<br />
<br />
==Changelog==<br />
<br />
===Version 1.2.1===<br />
<br />
:* New texture for the Huntsman<br />
:* Bugfix: Don't require ACCEPT_OFFER_1 as condition at Zaria<br />
:* Make some sort of weapons platform for use in the battle (fire plasma, missiles, etc.)<br />
:* Rearranged Ramazan war and improved AI.<br />
<br />
<br />
===Version 1.2===<br />
<br />
:* Fixed ships to suit external view<br />
:* Change planets government & productivity after war<br />
:* 'When the war is over' scripting<br />
:* Fix 'congrats' message coming from Funnelweb<br />
:* Restrict amount of pirates and traders in Ramaza during war<br />
:* Move the Link base and the battle away from the primary station<br />
:* Make the Whitetail bigger (doubled the size)<br />
<br />
===Version 1.1===<br />
<br />
:* Write a readme file<br />
:* Restrict purchase of Ionics ships to galaxy 1<br />
:* Restrict spawning of Ionics ships to galaxy 1<br />
<br />
<br />
== Download ==<br />
<br />
Can be downloaded from [http://oosat.alioth.net/node/44 Oosat2]<br />
<br />
[[Category:Oolite]]</div>Galileohttps://wiki.alioth.net/index.php?title=Oolite_Keyboard_Controls&diff=3933Oolite Keyboard Controls2006-04-01T06:45:31Z<p>Galileo: /* Undocumented Keys */</p>
<hr />
<div>== Default Key Assignments ==<br />
<br />
Linux users will find the following key assignments in <code> /usr/lib/Oolite/oolite.app/Contents/Resources/Config/keyconfig.plist </code> (assuming you did a default installation!).<br />
<br />
<br />
{| border="1" cellpadding="9" align="center" <br />
|+ <br />
|-style="background:darkslateblue; color:white"<br />
! Action !! Key !! Keycode (Dec) !! Keycode (Hex) !! Notes <br />
|-align="center" <br />
! Roll Left <br />
| Left arrow || 253 || FD || <br />
|-align="center"<br />
! Roll Right<br />
| Right arrow || 252 || FC || <br />
|-align="center"<br />
! Pitch Forward<br />
| Up arrow || 255 || FF || <br />
|-align="center"<br />
! Pitch Back<br />
| Down arrow || 254 || FE || <br />
|-align="center"<br />
! Increase Speed<br />
| w || 119 || 77 || <br />
|-align="center"<br />
! Inject Fuel<br />
| i || 105 || 69 || <br />
|-align="center"<br />
! Decrease Speed<br />
| s || 115 || 73 || <br />
|-align="center"<br />
! Fire Lasers<br />
| a || 97 || 61 || <br />
|-align="center"<br />
! Target Missile<br />
| t || 116 || 74 || <br />
|-align="center"<br />
! Untarget Missile<br />
| u || 117 || 75 || <br />
|-align="center"<br />
! Launch Missile <br />
| m || 109 || 6D || <br />
|-align="center"<br />
! Next Missile<br />
| y || 121 || 79 || <br />
|-align="center"<br />
! Activate Ident System <br />
| r || 114 || 72 || <br />
|-align="center"<br />
! Activate ECM <br />
| e || 101 || 65 || <br />
|-align="center"<br />
! Launch Escape Pod <br />
| Esc || 27 || 1B || <br />
|-align="center"<br />
! Energy Bomb <br />
| Tab || 9 || 09 || <br />
|-align="center"<br />
! Galactic Hyperspace <br />
| g || 103 || 67 || <br />
|-align="center"<br />
! Emergency Hyperdrive <br />
| H || 72 || 48 || won't work, probably <br />
|-align="center"<br />
! Hyperspace <br />
| h || 104 || 68 || <br />
|-align="center"<br />
! Jumpdrive <br />
| j || 106 || 6A || <br />
|-align="center"<br />
! Dump Cargo <br />
| d || 100 || 64 || <br />
|-align="center"<br />
! Autopilot <br />
| c || 99 || 63 || <br />
|-align="center"<br />
! Autodock <br />
| D || 68 || 44 || <br />
|-align="center"<br />
! Take a Snapshot <br />
| * (shift+8) || 42 || 2A || Written to $HOME/oolite-saves<br />
|-align="center"<br />
! Docking Music Toggle<br />
| s || 115 || 73 || Only if Docking Computer fitted!<br />
|-align="center"<br />
! Scanner Zoom <br />
| z || 122 || 7A || <br />
|-align="center"<br />
! Map Dump <br />
| ! (shift+1) || 33 || 21 || <br />
|-align="center"<br />
! Map Home <br />
| || 302 || || ??<br />
|-align="center"<br />
! Comms Log <br />
| ` || 96 || 60 || <br />
|-align="center"<br />
! Next Compass Mode <br />
| \ || 92 || 5C || <br />
|-align="center"<br />
! Display Frame Rate<br />
| F || || || <br />
|}<br />
<br />
<br />
<BR><br />
<br />
== Changing Key Assignments ==<br />
<br />
If you want to change key assignments ''don't'' alter the default file. Instead copy <code> keyconfig.plist </code> from <br />
<code> /usr/lib/Oolite/oolite.app/Contents/Resources/Config/ </code> to <br />
<code> /usr/lib/Oolite/AddOns/Config/</code>. <br />
(Note that you may need to create the Config directory first.)<br />
<br />
<br />
You can edit <code> keyconfig.plist </code> with any standard text editor. You'll find a list of Linux keycodes [http://www.comptechdoc.org/os/linux/howlinuxworks/linux_hlkeycodes.html here]. Note that Oolite uses ''decimal'' values whereas most keycodes are expressed in ''hexadecimal''. This can cause confusion. For example the comma key produces a keycode of 2C (hex) which translates to 44 (decimal), whereas keycode 44 (hex) refers to the uppercase "D" key, which is actually 68 (decimal)! (If you don't have a hex/decimal calculator handy try [http://www.lookuptables.com/ this table] or [http://www.blooberry.com/indexdot/color/hexcalc.htm this online converter].)<br />
<br />
== Undocumented Keys ==<br />
<br />
The following keys aren't yet official so your mileage may vary!<br />
<br />
<br />
{| border="1" cellpadding="9" align="center" <br />
|+ <br />
|-style="background:darkslateblue; color:white"<br />
! Action !! Key !! Keycode (Dec) !! Keycode (Hex) !! Notes <br />
|-align="center" <br />
! Toggle Mouse Control <br />
| Shift + M || 77 || 4D || When activated, the mouse becomes a virtual joystick. (Under Linux: only in fullscreen mode) The left mouse button fires and the right should re-centre your ship. <br />
|-<br />
|-align="center"<br />
! Get pwm coordinates<br />
| Shift + F || || || Shows the pwm coordinates at any time while flying in space.<br />
|-<br />
|-align="center"<br />
! Open the console.log<br />
| Pause, 0 || || || It opens the console.log. Highly useful for debugging OXPs or helping Gile to debug Oolite.<br />
|-<br />
|}<br />
<br />
<br />
<BR><br />
<br />
== Silly Keyboard Tricks ==<br />
<br />
* Change <code> key_launch_missile </code> to 112. Now you'll need to hit "p" to launch a missile - which also pauses the game. You'll sometimes get a nice snapshot of the departing missile!<br />
<br />
<br />
[[category:oolite]]</div>Galileohttps://wiki.alioth.net/index.php?title=Josher&diff=3920Josher2006-03-29T05:58:21Z<p>Galileo: /* OXP download */</p>
<hr />
<div>{{Infobox ShipStats Oolite| title=Josher<br />
|image = [[Image:josher2.png|250px]]<br />
|dimensions = X x Y x Z<br />
|capacity = 50 TC<br />
|gunmounts = Fore<br />Port, Starboard<br />
|maxspeed = 0.320 LM<br />
|maneuverability = Roll: 2.75<br />Pitch: 0.8<br />
|energybanks = 4<br />
|milshields = Yes<br />
|shieldboost = No<br />
|hyperspace = Yes<br />
|isoxp = OXP<br />
|isplayer = Yes<br />
}}<br />
<br />
== Overview ==<br />
<br />
"Boxy", "Squat", "Like some sort of large rodent" - these are all descriptions that the spacecraft press came up with when the Josher first rolled off the Aegidian Inc. production lines in Geerra in 2995. Named after a narrow boat of ancient times, the spacefaring Josher shares none of the grace and elegance of its prehistoric namesake, and the press were fast to catch onto the ship's indescribable ugliness. But as the time worn cliche says, beauty is in the eye of the beholder. The Josher is in fact a reasonable mid-level multi role ship. Larger than a Cobra Mk.III, reasonably fast, moderately manueverable - the standard model for only Cr.175,000. For that price, it's not surprising that the ship is popular despite looks that only a mother could love.<br />
<br />
== Notable features ==<br />
<br />
Equip a Josher with guns, a [[Witch fuel injectors|witch fuel injector]], an [[ECM]] and energy units, then fit the cargo bay extension and you can have a well equipped ship that will give most pirates a surprise. Despite its plain looks, the ship is well built and can really take the battering it is likely to receive if taken to more dangerous systems. The main problem for the owner of a Josher is resale price; they aren't sought after, so expect fairly heavy depreciation.<br />
<br />
== OXP download ==<br />
<br />
[http://oosat.alioth.net/node/8 Newships OXP, including the Josher]<br />
<br />
[[Category:Oolite]]</div>Galileohttps://wiki.alioth.net/index.php?title=Rattle_Cutter&diff=3919Rattle Cutter2006-03-29T05:57:09Z<p>Galileo: /* Download */</p>
<hr />
<div>{{Infobox ShipStats Oolite| title=Rattle Cutter<br />
|image = [[Image:Rattler.png|250px]]<br />
|dimensions = 52 x 22.5 x 75<br />
|capacity = N/A<br />
|gunmounts = Front (4 mounts)<br />
|maxspeed = 0.41 LM<br />
|maneuverability = Roll: 3.6<br />Pitch: 1.5<br />
|energybanks = 6<br />
|milshields = Available<br />
|shieldboost = Available<br />
|hyperspace = Yes<br />
|isoxp = OXP<br />
|isplayer = No<br />
}}<br />
<br />
== Overview ==<br />
<br />
The Rattle Cutter (or just Rattler, as it is known to most pilots) is essentially a manned weapon. Described as "gruesome" by the Xeer Citizens Concern Over Weapons Proliferation, this epithet is not an exaggeration. The ship was designed as a military vessel, and is unusual that the manufacturer, Murgh Shipyards of Teorge, developed the ship without an invitation to tender. It was developed speculatively on the good information that GalCop was looking for a more powerful ship to equip [[Behemoth]] warships to be used in battle against the Thargoids. However, no contract was forthcoming, and Murgh Shipyards was forced to sell the ship on the open market to avoid bankruptcy due to the colossal funds required to develop the ship.<br />
<br />
== Notable features ==<br />
<br />
Most ships in service today are designed around a myriad of standard fittings, and as such, you can go to a shipyard and fit virtually any kind of equipment without needing to specify the kind of ship: the mountings and sizes are all standardized so, for example, a military laser will fit in any ship that has the room and an available mounting. The Rattler is different. To avoid the compromises needed to have a plug-in-anything-and-play ship (often known as 'plug and pray' by more cynical commanders), Murgh Shipyards instead fitted entirely custom equipment, tailored specifically for the Rattle Cutter. This enabled the fearsome armament of four beam lasers that fire simultaneously - the idea being that the Rattler would be used for pre-emptive strikes on other ships. The four lasers can tear a ship apart before the commander has an opportunity to assess the situation. Everything about the ship is optimized for a quick first strike. Recognising that without the room to have other weapon mountings, the ship would be vulnerable if it did not eliminate its target on the first run, the ship comes equipped with military shield boosters and shield enhancers. This is of course also useful in the ship's other intended role: combating [[Thargoid Warship (Oolite)|Thargoid warships]]. Although the Rattle Cutter can hit a Thargoid warship very hard and very quickly, it needs protection against [[Thargons (Oolite)|Thargons]] and other Thargoid warships in the area. The Rattler is highly effective especially against larger victims, where it can easily bring all four lasers to bear simultaneously.<br />
<br />
== Controversy ==<br />
<br />
With the unfortunate failure of GalCop to place an order for the ship, the worst case scenario was realised at Murgh Shipyards: the company was left with enormous debt from the development of their most expensive fighter to date. They decided to sell the ship on the open market, with large traders being their main market - the idea being that large freighters could have one Rattle Cutter instead of half a dozen less capable ships as an escort. Sales were slow, and the company was not fussy about who it sold ships to since it was fighting for survival.<br />
<br />
[[Image:RattleAttack.png|thumb|left|250px|Incoming! A Rattle Cutter strikes]]<br />
<br />
Although traders purchased the ship for fleet protection, it quickly turned out that it was the ship favoured by organized crime - from assassins to large and well organized pirate gangs. Assassins found the ship especially useful - being able to use the Rattler to make a fast strike followed by a fast getaway. Pirates liked it as it enabled them to quickly destroy a trader's fighter protection, allowing the slow, bulky and unwieldy freighter to be stripped apart by the pirate's cargo carrier. Pirates at last had a fighter that was vastly superior to anything the Police could bring to bear; a single Rattle Cutter can happily take on several Vipers without a scratch.<br />
<br />
The widespread use of the ship as a weapon of crime caused the citizens of many planets to protest to their governments with the aim of banning the ship (or other similar specified ships) to anyone other than law enforcement or the military. Responsible owners of Rattle Cutters retorted by modifying an old cliche: "Rattlers don't kill people, people kill people". Seeing the handwriting on the wall, Murgh Shipyards voluntarily restricted sales to "official purchases only". For a time, this settled the protests - however, the company has never actually defined who it considers "official", and the more cynical campaigners have alleged that the company treats "official representitives of pirates and assassins as official".<br />
<br />
== Download ==<br />
<br />
The [http://oosat.alioth.net/node/41 xship.oxp] containing the Rattle Cutter.<br />
<br />
[[Category:Oolite]]</div>Galileohttps://wiki.alioth.net/index.php?title=Python_Class_Cruiser&diff=3918Python Class Cruiser2006-03-29T05:55:38Z<p>Galileo: /* OXP download */</p>
<hr />
<div>{{Infobox ShipStats Oolite| title=Python Class Cruiser<br />
|image = [[Image:Pcc.png|250px]]<br />
|dimensions = 80 x 90 x 160<br />
|capacity = 145 TC<br />
|gunmounts = Fore, Aft<br />Port, Starboard<br />
|maxspeed = 0.35 LM<br />
|maneuverability = Roll: 2.0<br />Pitch: 0.8<br />
|energybanks = 7<br />
|milshields = Yes<br />
|shieldboost = No<br />
|hyperspace = Yes<br />
|isoxp = OXP<br />
|isplayer = Yes<br />
}}<br />
<br />
== Overview ==<br />
<br />
The Python Class Cruiser was a larger and faster sister ship to the [[Python (Oolite)|Python]], rolling off the production lines at Inera Orbit Space along with the Python, production beginning in 2720, production ceasing at around the same time as Python production ended. Most traders see the Python's successor, the [[Boa (Oolite)|Boa]], as a retrograde step when compared to the Python Class Cruiser, and most commentators are of the opinion that the Boa should never have been constructed - instead, the PCC should have been updated. The market seems to agree too; the company has never regained the kinds of sales figures that they had in the 2800s when Python and Python Class Cruiser production was at its peak. On the other hand, the Python Class Cruiser was a much more expensive ship to build (and to buy when new) than the Boa.<br />
<br />
== Notable features ==<br />
[[Image:Pcc-ship-art.jpg|thumb|150px|left|An artist's rendition]]<br />
The Python Class Cruiser these days is typically favoured by pirates. It can hold its own in battle, it's fast for its size and it is built very strong. The shark's teeth design was a standard paintwork option, and it gives the ship a fearsome posture. Many honest traders choose this ship too - typically, a standard model can be had on the open market for Cr.360,000 - much less than a brand new Boa. But unlike the brand new Boa, any PCC on the market will be old and will need looking after. It's unquestionable that it is a lot of ship for the money, though.<br />
<br />
A 15 TC cargo bay extension is available, although many owners don't bother with it, finding 145 TC more than adequate for the small stock market (which typically can only just fill a Python Class Cruiser) - but with the extension, the ship is still slightly too small for most carrier jobs - most which really require ships on the scale of the [[Anaconda (Oolite)|Anaconda]].<br />
<br />
Probably the most unusual feature of the ship is the ram-augmented engines. The highly visible ram scoop can utilize charged particles from the solar wind as extra reaction mass leading to the relatively speedy performance of the ship. On the other hand, the ram scoop and associated supercharging system is often found to be a tiresome maintenance item.<br />
<br />
== OXP download ==<br />
<br />
[http://oosat.alioth.net/node/7 Python Class Cruiser OXP from Oosat]<br />
<br />
[[Category:Oolite]]</div>Galileohttps://wiki.alioth.net/index.php?title=Mussurana&diff=3917Mussurana2006-03-29T05:54:26Z<p>Galileo: /* Download */</p>
<hr />
<div>{{Infobox ShipStats Oolite| title=Mussurana Void-Yacht<br />
|image = [[Image:Mussurana.png|250px]]<br />
|dimensions = 35 x 19 x 80<br />
|capacity = 25 TC<br />
|gunmounts = Fore, Aft<br />Starboard, Port<br />
|maxspeed = 0.38 LM<br />
|maneuverability = Roll: 4.0<br />Pitch: 1.25<br />
|energybanks = 4<br />
|milshields = Available<br />
|shieldboost = Available<br />
|hyperspace = Yes<br />
|isoxp = OXP<br />
|isplayer = Yes<br />
}}<br />
<br />
== Overview ==<br />
<br />
The Mussurana snake is a snake that eats other snakes. Perhaps the Mussurana Void-Yacht can be called a snake ship that eats other snake ships. Agile, reasonably quick and easy to equip well as a trade ship that can look after itself, this new offering from the Zorgon Petterson Group goes on to continue the reputation that ZPG gained after it designed the now legendary [[Fer de Lance (Oolite)|Fer de Lance]].<br />
<br />
== Notable Features ==<br />
<br />
[[Image:Mussurana-underside.png|left|thumb|180px|Underside clearly showing the ram-scoop]]<br />
<br />
Weighing in at a colossal Cr.875,000 for the standard model, this is a ship made for the rich, with an interior to match. The ship has luxurious appointings, without appearing decadent or in bad taste. Zorgon Petterson Group's interior designers have created luxury living quarters with the same clean and understated industrial design that wealthy and discerning commanders have come to expect. This is the ship that Steve Jobs would fly were he to visit Lave and obtain his pilots license.<br />
<br />
The comfortable living arrangements does not mean the ship is comfortable for those who make it their target. Most Mussurana commanders spare no expense on defences and weaponry, so you can expect to find any Mussurana you encounter to equipped with [[military lasers]] and [[witch fuel injectors]]. Well-heeled bounty hunters with a sense of class are often seen in the Mussurana, having traded up from their Fer de Lance.<br />
<br />
== Incidents ==<br />
<br />
Only a week after the Mussurana went on sale at Zorgon Petterson Group dealerships, a Mussurana was used to assassinate the charismatic leader of the United Metalworkers Union in Reorte. The ship evaded police [[Viper (Oolite)|Viper]] patrol craft, and slipped into hyperspace. The perpetrator still has not been caught.<br />
<br />
== Download ==<br />
<br />
[http://oosat.alioth.net/node/3 Aegidian-special OXP, containing the Mussurana and other equipment]<br />
<br />
[[Category:Oolite]]</div>Galileohttps://wiki.alioth.net/index.php?title=Ionics_OXP&diff=3916Ionics OXP2006-03-29T05:53:42Z<p>Galileo: /* Version 1.3 */</p>
<hr />
<div>The '''Ionics OXP''' aims to enhance the northeast corner of Galaxy 2 with a number of interlocking missions revolving around a rich storyline. The OXP also contains 3 new ships available to the player:<br />
<br />
* The [[Ionics Huntsman|Huntsman]]<br />
* The [[Ionics Redback|Redback]]<br />
* The [[Ionics Whitetail|Whitetail]]<br />
<br />
The organisations featured in the OXP are:<br />
<br />
* '''[[The Link]]''', a clandestine organisation that aspires to rid the known Ooniverse of oppressive regimes.<br />
* The '''[[Ramaza Liberation Front]]''', a rebel group opposing the Ramazan government's reign.<br />
* The '''[[Ionics|Ionics Corporation]]''', an aerospace group based in Zaria.<br />
<br />
<br />
==Contributing==<br />
If you are interested in helping out with the OXP, you can contact the author via this articles talk page or on the [http://www.aegidian.org/bb/viewtopic.php?t=1119 Ionics thread] at [http://www.aegidian.org/bb Oolite Bulletins].<br />
<br />
<br />
==Roadmap==<br />
<br />
===Version 1.3===<br />
<br />
:* Set Link Base commodities<br />
:* Add pictures to mission screens<br />
:* Make some sort of weapons platform for use in the battle (fire plasma, missiles, etc.)<br />
:* Make new ships launch from stations instead of spawning in space<br />
:* Improve spacelane in Zaria etc.<br />
:* Add casinos to Cevera<br />
:* Improve Funnelweb (ballturrets, docking bay, etc.)<br />
:* Improve the Link Base (cladding, turrets, lights, warning messages, etc.)<br />
:* <s>New texture for the Huntsman</s><br />
:* <s>Bugfix: Don't require ACCEPT_OFFER_1 as condition at Zaria</s><br />
<br />
===Version 2.0===<br />
<br />
:* Calculate kills by player<br />
:* Setup ranking system for The Link and award medals<br />
:* Add Link HQ at Bebege<br />
:* Write random mini-missions in sector<br />
:* Assassinate dictator mission<br />
:* War in Legeara<br />
<br />
<br />
==Changelog==<br />
<br />
===Version 1.2===<br />
<br />
:* Fixed ships to suit external view<br />
:* Change planets government & productivity after war<br />
:* 'When the war is over' scripting<br />
:* Fix 'congrats' message coming from Funnelweb<br />
:* Restrict amount of pirates and traders in Ramaza during war<br />
:* Move the Link base and the battle away from the primary station<br />
:* Make the Whitetail bigger (doubled the size)<br />
<br />
===Version 1.1===<br />
<br />
:* Write a readme file<br />
:* Restrict purchase of Ionics ships to galaxy 1<br />
:* Restrict spawning of Ionics ships to galaxy 1<br />
<br />
<br />
== Download ==<br />
<br />
Can be downloaded from [http://oosat.alioth.net/node/44 Oosat2]<br />
<br />
[[Category:Oolite]]</div>Galileohttps://wiki.alioth.net/index.php?title=Ionics_Whitetail&diff=3915Ionics Whitetail2006-03-29T05:51:13Z<p>Galileo: /* Download */</p>
<hr />
<div>{{Infobox ShipStats Oolite| title=Ionics Whitetail<br />
|image = [[Image:Whitetail_in_flight1.png|250px]]<br />
|dimensions = 36 x 8 x 56<br />
|capacity = 5 TC<br />
|gunmounts = Fore, Aft<br />
|maxspeed = 0.38 LM<br />
|maneuverability = Roll: 1.85<br />Pitch: 1.85<br />
|energybanks = N/A<br />
|milshields = Available<br />
|shieldboost = Available<br />
|hyperspace = Yes<br />
|isoxp = OXP<br />
|isplayer = Yes<br />
}}<br />
<br />
==Overview==<br />
First produced in [[3081]], the [[Ionics]] Whitetail is a fast, lightweight assault vessel. Its release coincided with the withdrawal of the [[Ionics Huntsman|Huntsman]] from the market due to poor sales, but in stark contrast, the Whitetail quickly became the best-selling vessel in the galaxy. It's manoeuvrability and generous (for it's size) cargo capacity made it extremely popular amongst pirates and bounty hunters alike. Ionics' critics claim that it was designed specifically for this market and Ionics have been conspicuously silent on the issue.<br />
<br />
==Notable Features==<br />
The ship has a 5 ton cargo capacity and can be fitted with [[Military Shield Enhancement|military shield]]s and [[Shield Boosters|shield booster]]s, its high speed and 4 metre profile make it an extremely difficult target to hit. These features combined with its low price tag make the ship very attractive to [[Pirate|pirate]]s and [[Bountyhunter|bounty hunter]]s.<br />
<br />
==Military Service==<br />
In [[3101]], 2 months after the [[Zaria|Zarian]] government was re-elected, Ionics' were forced to withdraw the Whitetail from the open market and supply ships to the government. When the [[Ramazan Civil War]] broke out in [[3104]], Whitetail sales boomed making Ionics the most valuable company in the galaxy. Ionics dream run ended in [[3115]] when a civil uprising in Zaria effectively ended their contract with the government.<br />
<br />
== Download ==<br />
<br />
:* [http://oosat.alioth.net/node/44 Download the Ionics OXP from Oosat]<br />
<br />
:* [[Ionics OXP|Ionics OXP Development Page]]<br />
<br />
[[Category:Oolite]]</div>Galileohttps://wiki.alioth.net/index.php?title=Hognose_Tugship&diff=3914Hognose Tugship2006-03-29T05:47:02Z<p>Galileo: /* Download */</p>
<hr />
<div>{{Infobox ShipStats Oolite| title=Hognose Tugship<br />
|image = [[Image:Hognose.png|250px]]<br />
|dimensions = 66 x 32 x 80<br />
|capacity = N/A<br />
|gunmounts = None<br />
|maxspeed = 0.05 LM<br />
|maneuverability = Roll: 0.5<br />Pitch: 0.5<br /><br />
|energybanks = N/A<br />
|milshields = Not available<br />
|shieldboost = Not available<br />
|hyperspace = No<br />
|isoxp = OXP<br />
|isplayer = No<br />
}}<br />
<br />
== Overview ==<br />
<br />
The Hognose Tugship, as its name suggests, is a rather ugly single-purpose vessel. It is used for retrieving disabled ships or towing valuable 'space junk'. It has no combat capability and is very slow. It does have the hull strength to tow ships and materials far more massive than its size would suggest. These are typically dragged behind a solid (yellow and black) towbar.<br />
<br />
== Notable features ==<br />
<br />
The most notable feature about the ship is its extreme ugliness (and the seemingly continual state of annoyance that its commanders always seem to be in). It is slow and ungainly, but it wasn't designed to win beauty awards nor race. Many commanders find the Hognose the most beautiful sight they have ever seen when they have spent two weeks drifting in their disabled ship. Hognose commanders all seem to have gained the strange mannerism of sucking the air in through their teeth when discussing repairs to the disabled ship they are picking up (usually immediately prior to discussing the expense of the repairs, without actually saying how expensive they believe the repairs to be).<br />
<br />
== Famous incidents ==<br />
<br />
Botched dockings by Hognose tugships towing large wrecks (often in dangerous condition) into a space station have been reputed to cause such a large explosion in the stations mouth that it has caused the docking bay of the station to act as a rocket engine. There are plenty of legends about Tionisla space station's orbit being boosted several hundred kilometers by a careless Hognose pilot, although the Tionisla authorities deny the event ever occurred.<br />
<br />
== Download ==<br />
<br />
[http://oosat.alioth.net/node/25 Download the OXP from Oosat]<br />
[[Category:Oolite]]</div>Galileohttps://wiki.alioth.net/index.php?title=Frog_Space_Rickshaw&diff=3913Frog Space Rickshaw2006-03-29T05:45:19Z<p>Galileo: /* Download */</p>
<hr />
<div>{{Infobox ShipStats Oolite| title=Frog Space Rickshaw<br />
|image = [[Image:frog-sr.png|250px]]<br />
|dimensions = 18 x 30 x 20<br />
|capacity = 1 TC<br />
|gunmounts = Fore<br />
|maxspeed = 0.13 LM<br />
|maneuverability = Roll: 3.0<br />Pitch: 2.7<br />
|energybanks = N/A<br />
|milshields = Not available<br />
|shieldboost = Not available<br />
|hyperspace = No<br />
|isoxp = OXP<br />
|isplayer = No<br />
}}<br />
<br />
== Overview ==<br />
<br />
The Frog Space Rickshaw is the cheapest, easiest and unsafest transport to catch between stations, ships or anchorages. Though quite slow, they are agile, easily maneuvered shuttles, and a ride usually ends well. The widely known fact that only 'special people' will survive a long stay in a Frog, leads to less frequent patronage, but the constant consumer need for quick and inexpensive travel has made this fleet grown steadily since the day it began. It is speculated that you can probably catch a Space Rickshaw in every industrial system in the known galaxies.<br />
<br />
<br />
== Unfortunate beginnings ==<br />
<br />
At the time of the Frog's launch, there was great optimism as ''Khan Corp.'' promoted it as the answer to the increasing interstationary traffic congestion problems, and their candidate in the GalCop Open Shuttle Commission. Notably less expensive in manufacture and maintainance than all other models in competition, Khan Corp. felt confident they would win the coveted contract, and confidently produced it in massive numbers. Tragically, serious safety flaws beyond correction were discovered during early GalCop testing, and the model failed to make the competition's short list. <br />
<br />
Faced with certain bankruptcy, Khan Corp. panicked to cut their losses, and one man took advantage of this to full extent. Jaswinder Singh never revealed his intentions as he took the whole fleet of unusually ugly shuttles that had been proven useless, off the hands of Khan Corp, and for the following two years, was the easy target of malicious jokes in the Onrira sector. <br />
<br />
When Singh chose to re-emerge, and his concept was there for all to see, the venomous smiles stiffened. Having masterminded a vast, simultaneous franchise empire from within specific communities that shared an ancient lineage, Singh had suddenly produced a large industry that looked capable of rapidly expanding to galactic conglomerate scale, and apparently a vast supply of the unique type of pilots that could survive the unfavourable conditions of long-term exposure to the Frog. <br />
<br />
Jaswinder Singh eventually died as a ridiculously wealthy man.<br />
<br />
Singh's descendants have in the generations since, never tampered with the original recipe of success, as the ''Space Rickshaw Co.'' has come to enjoy some galactic comic reknown due to the ship's unfavourable history, and their pilots, the ''Wallahs'', usually peculiar social behaviour. <br />
<br />
<br />
[[Image:fsr-planet.png|thumb|right|250px|Frog venturing far from planet]]<br />
== Wallahs ==<br />
<br />
Since their training, and perhaps their extraction, make them uniquely suited to survive, and thrive, over long periods in a Frog, it is impossible to discard the Wallahs. Although public opinion smirks at the way they communicate, and the methods they use in conducting business negociations, it is commonly accepted that a Space Rickshaw Wallah is undoubtedly very brave, and must be gifted with special physical abilities. There is no route they dare not accept, and no evident dread of travelling through space in such a dangerous and vulnerable craft, as the Frog certainly is. This notoriety may have some cause to the fact that they are less frequent victims of piracy than one would think. <br />
<br />
Very little is known about this special physical endowment when it comes to their unlikely Frog condition endurance, and when asked about it, Wallahs will insist it is simply on account of ''Yo-ga''. There have been some radical scientific claims to support this baffling contention, but this is far from seriously considered among leading conventional scientists. As the Wallahs themselves are entirely indifferent to opinions outside their own communities, any proven explanation seems unlikely to emerge.<br />
<br />
Those that have spent any time with a Wallah can attest to that they seem to be completely calm under extreme stress and crisis, and inversely, appear to endure endless boredom with inhuman ease. In either situation they are known to repeatedly murmur in a deep voice, the meaningless sound "omm". <br />
<br />
Many Wallahs will, like the ''Space Rickshaw Co.'' founder, also bear the name Singh, but there need be no relation.<br />
<br />
== Download ==<br />
[http://oosat.alioth.net/node/20 Download the Frog Space Rickshaw OXP from OoSat]<br />
<br />
[[Category:Oolite]]</div>Galileohttps://wiki.alioth.net/index.php?title=Coral&diff=3912Coral2006-03-29T05:44:28Z<p>Galileo: /* Download */</p>
<hr />
<div>{{Infobox ShipStats Oolite| title=Coral StarLiner<br />
|image = [[Image:coral.png|250px]]<br />
|dimensions = 96 x 48 x 164<br />
|capacity = 50 TC<br />
|gunmounts = None<br />
|maxspeed = 0.32 LM<br />
|maneuverability = Roll: 0.8<br />Pitch: 1.25<br /><br />
|energybanks = N/A<br />
|milshields = N/A<br />
|shieldboost = N/A<br />
|hyperspace = Yes<br />
|isoxp = OXP<br />
|isplayer = No<br />
}}<br />
<br />
== Overview ==<br />
<br />
Fast and efficient, the '''Coral''' liners supply a reliable transport service to those that can afford a slightly more expensive ticket than what offered by [[Anaconda (Oolite)|Anaconda SpaceWays]], but with the benefit of considerably more comfort to the traveller. With regular schedules connecting medium to rich systems, a fleet of ships with a maximum capacity of 450 passengers, and the relatively healthy profit of this spaceline, it is puzzling that its leadership seem to give escort security such a low priority, something Coral StarLiner frequently gets criticized for. <br />
<br />
== Company ==<br />
<br />
Self-made man ''Rizzi Brazen'' gleams with pride every time he makes a personal appearance on the comms or ads to announce a new destination added to the Coral StarLiner repertoire, or a new luxury feature made available to its customers. That a large part of the public considers his thirst for constant exposure and need to project himself as a fun, magnetic persona, quite ridiculous, he seems oblivious to, but this image has never caused the company's economy to suffer. Indeed many StarLiner customers certainly appreciate that a similar enthusiasm and eagerness to please is instilled into his employees. <br />
<br />
== Shortcomings ==<br />
[[Image:Coral-attack.png|200px|thumb|left|The usual assault]]<br />
<br />
As has often been pointed out however, travelling with the Coral StarLiners isn't without risk. Why Brazen stubbornly refuses to admit that a policy of taking only 2 [[Sidewinder (Oolite)|Sidewinder]] escorts does not offer sufficient protection for the current level of crime found in space, seems to be a matter of pride, and whenever this criticism is raised, he will mutter the same unsatisfying reply about the Coral being "a very fast ship with excellent shields, ..our liners and escorts ..the finest pilots.." This will inevitably ruin his great mood, cause him to promptly excuse himself, and exit the limelight, cheeks flushed. Faithful customers live in the hope that Brazen will eventually reconsider his position on this.<br />
<br />
== Download ==<br />
<br />
The [http://oosat.alioth.net/node/22 transports.oxp] containing the Coral liners.<br />
<br />
[[Category:Oolite]]</div>Galileohttps://wiki.alioth.net/index.php?title=CoachWhip&diff=3911CoachWhip2006-03-29T05:43:08Z<p>Galileo: /* Download */</p>
<hr />
<div>{{Infobox ShipStats Oolite| title=CoachWhip Liner<br />
|image = [[Image:Coachwhip.png|250px]]<br />
|dimensions = 82 x 25 x 106<br />
|capacity = 10 TC<br />
|gunmounts = None<br />
|maxspeed = 0.34 LM<br />
|maneuverability = Roll: 1.35<br />Pitch: 1.2<br /><br />
|energybanks = N/A<br />
|milshields = N/A<br />
|shieldboost = N/A<br />
|hyperspace = Yes<br />
|isoxp = OXP<br />
|isplayer = No<br />
}}<br />
<br />
== Overview ==<br />
<br />
Taking a seat on a '''CoachWhip''' is a privilege granted only the exclusive club of people who demand excessive luxury and willingly pay more than its actual worth. Not bothered by this image, indeed encouranging it with slogans such as, ''"Get there ahead of the riffraff"'' and ''"Why pay less when you want more"'', this spaceline has claimed its obscure niche and has no reason to expect any competition soon.<br />
<br />
== Inception ==<br />
<br />
As multi-billionaire and [[FurCorp]] heiress ''Magda DeMug'' grew weary of entertaining her demanding guests on numerous private space cruises, she founded CoachWhip Inc. as a pet project, to get some rest from the continuous festivities. As a start, she had made 12 replicas of her own CoachWhip, initially quite a unique cruise ship in that it sported [[Moray Star Boat (Oolite|Moray]] amphibious capabilities while equipped to treat some 100 passengers to luxury conditions, but the appeal of this experience was soon in demand from a much larger group than DeMug's inner circles. Finding that there were gross amounts of money to be made on what was initially no more than a silly idea, CoachWhip Inc. was steadily expanded to galactic service. <br />
<br />
== Myths ==<br />
<br />
It is sometimes maliciously said that DeMug's reasons for founding the spaceline were far more selfish than the official version. Upset with the increasing frequency of piracy and the huge apparatus of security this necessitated, and how large groups of escorts would always spoil the view, the first dozen replicas were intended as decoys to confuse criminals who would closely observe her movements and stage coordinated assaults, intentionally risking the lives of her dearest friends. This allegation is refuted by company officials who point to the unusually large fleet of custom escort [[Sidewinder (Oolite)|Sidewinder]]s that always accompany CoachWhips, as evidence to the contrary.<br />
<br />
== Download ==<br />
<br />
The [http://oosat.alioth.net/node/22 transports.oxp] containing the CoachWhips.<br />
<br />
[[Category:Oolite]]</div>Galileohttps://wiki.alioth.net/index.php?title=BoyRacer&diff=3910BoyRacer2006-03-29T05:39:14Z<p>Galileo: /* Download */</p>
<hr />
<div>{{Infobox ShipStats Oolite| title=Hatchling BoyRacer1<br />
|image = [[Image:hbr1N.png|250px]]<br />
|dimensions = 16 x 8.5 x 39.5<br />
|capacity = N/A<br />
|gunmounts = Front<br />
|maxspeed = 0.39 LM<br />
|maneuverability = Roll: 1.7<br />Pitch: 1.5<br />
|energybanks = 4<br />
|milshields = Available<br />
|shieldboost = Available<br />
|hyperspace = Yes<br />
|isoxp = OXP<br />
|isplayer = Yes<br />
}}<br />
<br />
== Overview ==<br />
<br />
Before ''Hatchling'' released the first BoyRacer1, the characteristics of traffic near hi-tech system stations was quite different, as veteran pilots will fondly recall. Hatchling calculated from the very beginning that there was a hungry market for small, fast, luxury vessels, and the target customers reacted exactly as hoped. Far too expensive, colourful and useless for anyone whith the need to make a livelihood in space, the BoyRacers are the clear favourite ship of bored, hideously wealthy youths. <br />
<br />
Although they are quite fast and steer reasonably well, the Hatchling models all share a common trait in the vulnerable hull, which makes it an unlikely choice for anyone with serious space combat on the agenda. Nevertheless, as is often seen, young, unscrupulous and thoughtless pilots with too much time and money, have a tendency to stir up trouble.<br />
<br />
<br />
{{Infobox ShipStats Oolite| title=Hatchling BoyRacer2<br />
|image = [[Image:hbr2N.png|250px]]<br />
|dimensions = 19.5 x 8.5 x 40<br />
|capacity = N/A<br />
|gunmounts = Front<br />
|maxspeed = 0.399 LM<br />
|maneuverability = Roll: 1.9<br />Pitch: 1.5<br />
|energybanks = 4<br />
|milshields = Available<br />
|shieldboost = Available<br />
|hyperspace = Yes<br />
|isoxp = OXP<br />
|isplayer = Yes<br />
}}<br />
<br />
== Design principle ==<br />
<br />
As Hatchling sought to perfect their concept, the first BoyRacer was built as a minimal though luxurious compartment to fit the skeleton of only the essential engineering needed for high speed and intergalactic jumping. As the series has progressed, this is unchanged, and although improvements in speed performance and maneuverability have come about, these ships remain hazardous to take into battle. The makers insist however, that in the lack of bulky armoured protection lies its strength, as this allows the BoyRacer to be a 'near impossible target to hit', and no efforts to solidify the hull are expected in future models. Continued releases of new colour variation models, however, is a fairly safe prediction.<br />
[[Image:HatchAD.jpg|thumb|left|200px|From the most recent campaign]]<br />
Prior to unveiling the BoyRacer3, Hatchling chairman ''Ludo Van Der Budenmayer'' did little to dispel rumours that the BoyRacers would make a conservative shift in the direction of business travel and the courier market, only to present a BoyRacer with enhancements based entirely on suggestions made by their loyal fan cult. Although there is pressure on the company to condemn typical BoyRacer behaviour, Van Der Budenmayer often speaks up in their defence, and although no longer a youth, he is himself said to frequently fly about in BoyRacers while acting as obnoxious as any rich punk.<br />
<br />
{{Infobox ShipStats Oolite| title=Hatchling BoyRacer3<br />
|image = [[Image:hbr3N.png|250px]]<br />
|dimensions = 20 x 7.5 x 41.5<br />
|capacity = N/A<br />
|gunmounts = Front<br />
|maxspeed = 0.405 LM<br />
|maneuverability = Roll: 1.9<br />Pitch: 1.7<br />
|energybanks = 4<br />
|milshields = Available<br />
|shieldboost = Available<br />
|hyperspace = Yes<br />
|isoxp = OXP<br />
|isplayer = Yes<br />
}}<br />
<br />
<br />
== Target group ==<br />
[[Image:boyracer-battle.png|thumb|left|250px|Such a small target]]<br />
<br />
Those who take space travel and trade seriously have little patience for the stereotypical BoyRacer pilot. Although occasionally someone flying a Hatchling may actually have a legitimate purpose in mind, far too often there is absolutely none, and out of boredom they will attack and annoy those that have actual business to do in space. Their attitude has a particular way of getting under the skin of older pilots especially, since their unimaginative taunting usually revolve around the subject of age. It makes them no less cocky that in all probability they may say and do anything they want, and get away much too quickly to ever face any consequences for their impish actions.<br />
<br />
<br />
== Incidents ==<br />
<br />
Although unconfirmed by any evidence, there is cause to believe the story of ''Burle Pfaff'', said to have been pushed too far by a BoyRacer gang calling themselves "The Zips". A seasoned trader in his autumn years, Pfaff was forced to draw upon 40 years of space experience, in order to survive an encounter with the dreaded gang by the skin of his prosthetic teeth. When he, and his beloved Wolf Mk II, eventually recovered, he made it his mission in life to seek satisfactory retribution. It is rumoured it took him 7 years to hunt down and kill every one involved in the offending incident, many of whom had since matured and moved on to more responsible roles in society, and never saw the payback coming.<br />
<br />
Famously, he was himself killed while executing Biff Reese, the last surviving member and the leader of the gang. Having successfully ambushed the unrepentant young man, and caught his ship firmly in an unescapable clamp-lock, Pfaff went on to remind Reese of his past offence, before activating a Q bomb that would see them both dead. Reese made a run for it in his escape pod, but never came close to escaping the blast.<br />
<br />
<br />
== Download ==<br />
<br />
[http://oosat.alioth.net/node/19 Download the BoyRacers OXP from Oosat]<br />
<br />
[[Category:Oolite]]</div>Galileohttps://wiki.alioth.net/index.php?title=Behemoth&diff=3909Behemoth2006-03-29T05:37:15Z<p>Galileo: /* Download */</p>
<hr />
<div>{{Infobox ShipStats Oolite| title=Behemoth class warship<br />
|image = [[Image:Behemoth.png|250px]]<br />
|dimensions = 416 x 160 x 750<br />
|capacity = N/A<br />
|gunmounts = 8 ball turrets<br />
|maxspeed = 0.32 LM<br />
|maneuverability = Roll: 0.4<br />Pitch: 0.2<br />
|energybanks = N/A<br />
|milshields = N/A<br />
|shieldboost = N/A<br />
|hyperspace = Yes<br />
|isoxp = OXP<br />
|isplayer = No<br />
}}<br />
== Overview ==<br />
<br />
The Behemoth-class starship is GalCop's mainstay battleship. Fitted with 8 ball turrets (usually armed with plasma cannons), and with a belly full of [[Viper (Oolite)|Viper]] interceptors, the ship is a formidable opponent for humans and Thargoids alike. Most Behemoth-class vessels are currently assigned to planetary patrol/search and rescue. During peacetime, the Behemoth accepts civilian traffic at its docking port, the military engineers providing the best overhaul/repair facilities to be found. Repairs, fuel and equipment are expensive at these facilities, typically twice the amount that you would pay at a civilian space station.<br />
<br />
== Notable features ==<br />
<br />
The first impression is ''size''. The class is called Behemoth for good reason - the ship must be sized appropriately to carry numerous interceptors. However, for fugitives, this impression is not long lasting. If an unfortunate pirate vessel should come too close to a Behemoth, it will open up with its formidable weaponry. While plasma cannons are somewhat rare on small ships (and also fairly ineffective), the large cannons carried by a Behemoth literally fill the space around the targetted vessel with searing plasma, which quickly strips shields and tears through duralium. Many a fugitive has been caught unawares - the plasma bolts seen against the bulk of this ship look tiny and ineffective, and are paid little attention until they begin to impact.<br />
<br />
[[Image:Behemoth-attack.png|left|thumb|140px|A behemoth fires a broadside]]<br />
<br />
If a full broadside fired by the Behemoth doesn't get a fugitive's attention, the Vipers that begin launching certainly will. The Behemoth is as well defended by Vipers as any space station in a wealthy star system.<br />
<br />
The Behemoth has a surprising turn of speed; large ships such as this are generally limited to very low velocities to prevent the frequent strikes of small meteorites from causing serious damage. However, the Behemoth is fitted with military shields (the shield generation plant alone accounts for a full third of the giant ship's mass), and the Behemoth can survive a high speed collision with asteroids up to three tonnes in mass without taking any damage.<br />
<br />
== Docking with a Behemoth ==<br />
<br />
Most of these ships will accept civilian craft, so long as the commander is in good standing (i.e. not a Fugitive). However, the captain of a Behemoth will rarely make special allowances for visiting craft (such as changing course or slowing down).<br />
<br />
[[Image:Behemoth-dock.jpg|left|thumb|200px|A behemoth's docking port]]<br />
<br />
The captain is also not particularly bothered if you come to grief whilst docking; as previously mentioned, the craft is strong enough to collide with a large asteroid at high speed, and it is unlikely you will even scratch the docking port if you get it wrong (your ship will almost certainly require expensive repairs after a botched docking with a Behemoth).<br />
<br />
The general procedure is to fly ahead of the Behemoth until you are a reasonable distance away, and then turn to face the craft and line up with the port. Since both your ship and the Behemoth are flying towards each other, you will have a high relative speed with the ship, and therefore there is very little time to get lined up. Once you have lined up, slow down to a halt, and wait for the starship to scoop you up. This lessens the chance of a botched docking from causing serious damage to your ship.<br />
<br />
An alternate way of docking is to fly over the top of the Behemoth parallel to its flight path. As you pass the starship, watch for it on your rear view. Match speed with the Behemoth, so you keep station with it, then carefully manoevre until the docking port is lined up in your rear view. Then reduce your speed so the Behemoth catches you up and scoops you up in the docking port.<br />
<br />
If all else fails you could just press Shift+C to engage the autopilot.<br />
<br />
== Download ==<br />
[http://oosat.alioth.net/node/6 Download the OXP from Oosat]<br />
[[Category:Oolite]]</div>Galileohttps://wiki.alioth.net/index.php?title=Planetinfo.plist&diff=3908Planetinfo.plist2006-03-29T04:31:08Z<p>Galileo: /* Sky Blur Cluster Chance */</p>
<hr />
<div>'''planetinfo.plist''' in 'AddOns/Config' contains a dictionary for each of systems for which you wish to set custom data. A list of all galaxies and planets can be found [[Oolite planet list|here]].<br />
<br />
Each system is keyed by a string consisting of the galaxy number (0..7) followed by a space and then the planet number (0..255), eg.<br />
'''<key>0 7</key>'''<br />
'''<dict>'''<br />
'''...'''<br />
'''</dict>'''<br />
specifies system 7, in galaxy 0, ''Lave''.<br />
<br />
<br />
You can also specify a position in interstellar space, eg.<br />
'''<key>interstellar: 0 7 129</key>'''<br />
'''<dict>'''<br />
'''...'''<br />
'''</dict>'''<br />
specifies the space in galaxy 0 between systems 7 and 129, ''Lave'' and ''Zaonce''.<br />
<br />
<br />
Some options can be applied to the entire universe, such as ambient lighting levels, eg.<br />
'''<key>universal</key>'''<br />
'''<dict>'''<br />
'''...'''<br />
'''</dict>'''<br />
Universal options can be overriden by specifying the same option for a specific system or location in interstellar space. Obviously, not all options make sense to apply to the whole universe.<br />
<br />
<br />
Finally you can also add keys for your own custom planets and moons, eg.<br />
'''<key>LavesPurpleMoon</key><br />
'''<dict>'''<br />
'''...'''<br />
'''</dict>'''<br />
<br />
<br />
Each of the following properties can be set (but, notably, not the location, which is hard coded into the system seed value): <br />
<br />
==Government==<br />
<br />
<br />
0: Anarchy<br />
<br />
1: Feudal<br />
<br />
2: Multi-Governmental<br />
<br />
3: Dictatorship<br />
<br />
4: Communist<br />
<br />
5: Confederacy<br />
<br />
6: Democracy<br />
<br />
7: Corporate State<br />
<br />
<br />
==Economy==<br />
<br />
<br />
0: Rich Industrial<br />
<br />
1: Average Industrial<br />
<br />
2: Poor Industrial<br />
<br />
3: Mainly Industrial<br />
<br />
4: Mainly Agricultural<br />
<br />
5: Rich Agricultural<br />
<br />
6: Average Agricultural<br />
<br />
7: Poor Agricultural<br />
<br />
<br />
==Tech Level==<br />
An integer between 0 and 13 indicating the sophistication of the planets technology.<br />
<br />
<br />
Example:<br />
<key>techlevel</key><br />
<integer>13</integer> <br />
<br />
<br />
==Population==<br />
An integer between 0 and 67 indicating the amount of inhabitants of a planet.<br />
<br />
<br />
Example:<br />
<key>population</key> <br />
<integer>23</integer> <br />
<br />
<br />
==Productivity==<br />
An integer indicating the productivity of a planet.<br />
<br />
<br />
Example:<br />
<key>productivity</key> <br />
<integer>1000 </integer> <br />
<br />
<br />
==Radius==<br />
An integer between 3000 and 7000 indicating the radius of a planet.<br />
<br />
<br />
Example:<br />
<key>radius</key> <br />
<integer>3000..7000 </integer> <br />
<br />
<br />
==Name==<br />
The name of the planet.<br />
<br />
<br />
Example:<br />
<key>name</key> <br />
<string>The planet's name</string> <br />
<br />
<br />
==Inhabitants==<br />
A name of the inhabitants of the planet.<br />
<br />
<br />
Example:<br />
<key>inhabitants</key> <br />
<string>Human Colonials</string> <br />
<br />
<br />
==Description==<br />
A short description of the planet.<br />
<br />
<br />
Example:<br />
<key>description</key> <br />
<string>Really, anything you want to say about the place!</string> <br />
<br />
<br />
==Percent Land==<br />
The percentage of the planet occupied by land.<br />
<br />
<br />
Example:<br />
<key>percent_land</key> <br />
<integer>0..100</integer> <br />
<br />
<br />
==Land HSB Color==<br />
<br />
<br />
Example:<br />
<key>land_hsb_color</key> <br />
<string>0.0..1.0 0.0..1.0 0.0..1.0</string> <br />
<br />
<br />
==Sea HSB Color==<br />
<br />
<br />
Example:<br />
<key>sea_hsb_color</key> <br />
<string>0.0..1.0 0.0..1.0 0.0..1.0</string> <br />
<br />
<br />
==Sky RGB Colors==<br />
<br />
These are rgb values (from 0.0 to 1.0) for the two colours between which the colour of the stars (and nebulaesque blurs) vary, ordered r1 g1 b1 r2 g2 b2 where (r1 g1 b1) defines the first colour and (r2 g2 b2) the second.<br />
<br />
Example:<br />
<key>sky_rgb_colors</key> <br />
<string>0.0..1.0 0.0..1.0 0.0..1.0 0.0..1.0 0.0..1.0 0.0..1.0</string> <br />
<br />
<br />
==Station==<br />
The type of station orbiting the planet.<br />
<br />
<br />
Example:<br />
<key>station</key> <br />
<string>coriolis..dodec..special</string> <br />
<br />
<br />
==Station Roll==<br />
The speed at which the station rotates (as with all rotational velocities this is in radians per second).<br />
<br />
<br />
Example:<br />
<key>station_roll</key> <br />
<string>0.5</string><br />
<br />
==Sky Blur Cluster Chance==<br />
This is used for creating nebulae (typically 0.85)<br />
<br />
<br />
Example:<br />
<key>sky_blur_cluster_chance</key> <br />
<real>0.85</real><br />
<br />
==Sky Blur Alpha==<br />
Typically 0.1<br />
<br />
<br />
Example:<br />
<key>sky_blur_alpha</key> <br />
<real>0.0 .. 1.0</real><br />
<br />
<br />
==Sky Blur Scale==<br />
<br />
<br />
Example:<br />
<key>sky_blur_scale</key> <br />
<real>0.0 .. 128.0 or more</real> <!-- typically 12 --> <br />
<br />
==Ambient lighting==<br />
<br />
(Oolite version >= 1.64) Sets how much ambient light (shed by stars and nebulae) illuminates the dark side of objects like planets and ships. Values should typically be between 0.0 and 1.0 (1.0 is the default) but can be higher for a flat lit, cartoon-like effect.<br />
<br />
Example:<br />
<key>ambient_level</key><br />
<real>0.0</real><br />
<br />
==Terraforming Example==<br />
<br />
For the planet Lave, you would use the key '0 7' (planet 7 in galaxy 0) Then you set the values. The following example sets Lave's sea to blue, land to green, and land to sea ratio to 75%. <br />
<br />
Code:<br />
<?xml version="1.0" encoding="UTF-8"?> <br />
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <br />
<plist version="1.0"> <br />
<dict> <br />
<key>0 7</key> <br />
<dict> <br />
<key>percent_land</key> <br />
<integer>75</integer> <br />
<key>land_hsb_color</key> <br />
<string>0.333 1.0 1.0</string> <br />
<key>sea_hsb_color</key> <br />
<string>0.667 1.0 1.0</string> <br />
</dict> <br />
</dict> <br />
</plist><br />
<br />
If you press '!' on a long range chart, it'll dump the galaxy information to files in the same folder as Oolite. That'll give you a list of the planet numbers, and some other information about each planet for the given galaxy. <br />
<br />
Then you can override any of the settings listed above, for example to change Zaatxe's (Galaxy 0 Planet 8) inhabitants into blue frogs you'd enter <br />
<br />
Code:<br />
<key>0 8</key> <br />
<dict> <br />
<key>inhabitants</key> <br />
<string>Blue Frogs</string> <br />
</dict> <br />
<br />
<br />
You can use any or all of the keys in each of the entries. It's probably best to only use the key's you want to change. So, another example, to change the sky_blur_xxx settings for Zaonce (Galaxy 0 Planet 129) to big, heavily clustered, but pale blurs - you'd enter <br />
<br />
Code:<br />
<key>0 129</key> <br />
<dict> <br />
<key>sky_blur_cluster_chance</key> <br />
<real>0.9</real> <br />
<key>sky_blur_alpha</key> <br />
<real>0.1</real> <br />
<key>sky_blur_scale</key> <br />
<real>32.0</real> <br />
</dict><br />
<br />
[[Category:Oolite]]</div>Galileohttps://wiki.alioth.net/index.php?title=Ionics_OXP&diff=3902Ionics OXP2006-03-28T07:41:38Z<p>Galileo: /* Version 1.3 */</p>
<hr />
<div>The '''Ionics OXP''' aims to enhance the northeast corner of Galaxy 2 with a number of interlocking missions revolving around a rich storyline. The OXP also contains 3 new ships available to the player:<br />
<br />
* The [[Ionics Huntsman|Huntsman]]<br />
* The [[Ionics Redback|Redback]]<br />
* The [[Ionics Whitetail|Whitetail]]<br />
<br />
The organisations featured in the OXP are:<br />
<br />
* '''[[The Link]]''', a clandestine organisation that aspires to rid the known Ooniverse of oppressive regimes.<br />
* The '''[[Ramaza Liberation Front]]''', a rebel group opposing the Ramazan government's reign.<br />
* The '''[[Ionics|Ionics Corporation]]''', an aerospace group based in Zaria.<br />
<br />
<br />
==Contributing==<br />
If you are interested in helping out with the OXP, you can contact the author via this articles talk page or on the [http://www.aegidian.org/bb/viewtopic.php?t=1119 Ionics thread] at [http://www.aegidian.org/bb Oolite Bulletins].<br />
<br />
<br />
==Roadmap==<br />
<br />
===Version 1.3===<br />
<br />
:* Make a custom primary station that doesn't launch cops<br />
:* Set Link Base commodities<br />
:* Add pictures to mission screens<br />
:* Make some sort of weapons platform for use in the battle (fire plasma, missiles, etc.)<br />
:* Make new ships launch from stations instead of spawning in space<br />
:* Improve spacelane in Zaria etc.<br />
:* Add casinos to Cevera<br />
:* Improve Funnelweb (ballturrets, docking bay, etc.)<br />
:* Improve the Link Base (cladding, turrets, lights, etc.)<br />
:* <s>New texture for the Huntsman</s><br />
:* <s>Bugfix: Don't require ACCEPT_OFFER_1 as condition at Zaria</s><br />
<br />
===Version 2.0===<br />
<br />
:* Calculate kills by player<br />
:* Setup ranking system for The Link and award medals<br />
:* Add Link HQ at Bebege<br />
:* Write random mini-missions in sector<br />
:* Assassinate dictator mission<br />
:* War in Legeara<br />
<br />
<br />
==Changelog==<br />
<br />
===Version 1.2===<br />
<br />
:* Fixed ships to suit external view<br />
:* Change planets government & productivity after war<br />
:* 'When the war is over' scripting<br />
:* Fix 'congrats' message coming from Funnelweb<br />
:* Restrict amount of pirates and traders in Ramaza during war<br />
:* Move the Link base and the battle away from the primary station<br />
:* Make the Whitetail bigger (doubled the size)<br />
<br />
===Version 1.1===<br />
<br />
:* Write a readme file<br />
:* Restrict purchase of Ionics ships to galaxy 1<br />
:* Restrict spawning of Ionics ships to galaxy 1<br />
<br />
<br />
== Download ==<br />
<br />
Can be downloaded from [http://oosat.alioth.net/node/44 Oosat2]<br />
<br />
[[Category:Oolite]]</div>Galileohttps://wiki.alioth.net/index.php?title=Ionics_OXP&diff=3901Ionics OXP2006-03-28T06:16:09Z<p>Galileo: /* Version 1.3 */</p>
<hr />
<div>The '''Ionics OXP''' aims to enhance the northeast corner of Galaxy 2 with a number of interlocking missions revolving around a rich storyline. The OXP also contains 3 new ships available to the player:<br />
<br />
* The [[Ionics Huntsman|Huntsman]]<br />
* The [[Ionics Redback|Redback]]<br />
* The [[Ionics Whitetail|Whitetail]]<br />
<br />
The organisations featured in the OXP are:<br />
<br />
* '''[[The Link]]''', a clandestine organisation that aspires to rid the known Ooniverse of oppressive regimes.<br />
* The '''[[Ramaza Liberation Front]]''', a rebel group opposing the Ramazan government's reign.<br />
* The '''[[Ionics|Ionics Corporation]]''', an aerospace group based in Zaria.<br />
<br />
<br />
==Contributing==<br />
If you are interested in helping out with the OXP, you can contact the author via this articles talk page or on the [http://www.aegidian.org/bb/viewtopic.php?t=1119 Ionics thread] at [http://www.aegidian.org/bb Oolite Bulletins].<br />
<br />
<br />
==Roadmap==<br />
<br />
===Version 1.3===<br />
<br />
:* Bugfix: Don't require ACCEPT_OFFER_1 as condition at Zaria<br />
:* Make a custom primary station that doesn't launch cops<br />
:* Set Link Base commodities<br />
:* Add pictures to mission screens<br />
:* Make some sort of weapons platform for use in the battle (fire plasma, missiles, etc.)<br />
:* Make new ships launch from stations instead of spawning in space<br />
:* Improve spacelane in Zaria etc.<br />
:* Add casinos to Cevera<br />
:* Improve Funnelweb (ballturrets, docking bay, etc.)<br />
:* Improve the Link Base (cladding, turrets, lights, etc.)<br />
:* <s>New texture for the Huntsman</s><br />
<br />
===Version 2.0===<br />
<br />
:* Calculate kills by player<br />
:* Setup ranking system for The Link and award medals<br />
:* Add Link HQ at Bebege<br />
:* Write random mini-missions in sector<br />
:* Assassinate dictator mission<br />
:* War in Legeara<br />
<br />
<br />
==Changelog==<br />
<br />
===Version 1.2===<br />
<br />
:* Fixed ships to suit external view<br />
:* Change planets government & productivity after war<br />
:* 'When the war is over' scripting<br />
:* Fix 'congrats' message coming from Funnelweb<br />
:* Restrict amount of pirates and traders in Ramaza during war<br />
:* Move the Link base and the battle away from the primary station<br />
:* Make the Whitetail bigger (doubled the size)<br />
<br />
===Version 1.1===<br />
<br />
:* Write a readme file<br />
:* Restrict purchase of Ionics ships to galaxy 1<br />
:* Restrict spawning of Ionics ships to galaxy 1<br />
<br />
<br />
== Download ==<br />
<br />
Can be downloaded from [http://oosat.alioth.net/node/44 Oosat2]<br />
<br />
[[Category:Oolite]]</div>Galileohttps://wiki.alioth.net/index.php?title=Ionics_OXP&diff=3899Ionics OXP2006-03-27T11:39:05Z<p>Galileo: </p>
<hr />
<div>The '''Ionics OXP''' aims to enhance the northeast corner of Galaxy 2 with a number of interlocking missions revolving around a rich storyline. The OXP also contains 3 new ships available to the player:<br />
<br />
* The [[Ionics Huntsman|Huntsman]]<br />
* The [[Ionics Redback|Redback]]<br />
* The [[Ionics Whitetail|Whitetail]]<br />
<br />
The organisations featured in the OXP are:<br />
<br />
* '''[[The Link]]''', a clandestine organisation that aspires to rid the known Ooniverse of oppressive regimes.<br />
* The '''[[Ramaza Liberation Front]]''', a rebel group opposing the Ramazan government's reign.<br />
* The '''[[Ionics|Ionics Corporation]]''', an aerospace group based in Zaria.<br />
<br />
<br />
==Contributing==<br />
If you are interested in helping out with the OXP, you can contact the author via this articles talk page or on the [http://www.aegidian.org/bb/viewtopic.php?t=1119 Ionics thread] at [http://www.aegidian.org/bb Oolite Bulletins].<br />
<br />
<br />
==Roadmap==<br />
<br />
===Version 1.3===<br />
<br />
:* <s>New texture for the Huntsman</s><br />
:* Make a custom primary station that doesn't launch cops<br />
:* Set Link Base commodities<br />
:* Add pictures to mission screens<br />
:* Make some sort of weapons platform for use in the battle (fire plasma, missiles, etc.)<br />
:* Make new ships launch from stations instead of spawning in space<br />
:* Improve spacelane in Zaria etc.<br />
:* Add casinos to Cevera<br />
:* Improve Funnelweb (ballturrets, docking bay, etc.)<br />
:* Improve the Link Base (cladding, turrets, lights, etc.)<br />
<br />
===Version 2.0===<br />
<br />
:* Calculate kills by player<br />
:* Setup ranking system for The Link and award medals<br />
:* Add Link HQ at Bebege<br />
:* Write random mini-missions in sector<br />
:* Assassinate dictator mission<br />
:* War in Legeara<br />
<br />
<br />
==Changelog==<br />
<br />
===Version 1.2===<br />
<br />
:* Fixed ships to suit external view<br />
:* Change planets government & productivity after war<br />
:* 'When the war is over' scripting<br />
:* Fix 'congrats' message coming from Funnelweb<br />
:* Restrict amount of pirates and traders in Ramaza during war<br />
:* Move the Link base and the battle away from the primary station<br />
:* Make the Whitetail bigger (doubled the size)<br />
<br />
===Version 1.1===<br />
<br />
:* Write a readme file<br />
:* Restrict purchase of Ionics ships to galaxy 1<br />
:* Restrict spawning of Ionics ships to galaxy 1<br />
<br />
<br />
== Download ==<br />
<br />
Can be downloaded from [http://oosat.alioth.net/node/44 Oosat2]<br />
<br />
[[Category:Oolite]]</div>Galileohttps://wiki.alioth.net/index.php?title=Ionics_OXP&diff=3894Ionics OXP2006-03-26T02:46:09Z<p>Galileo: </p>
<hr />
<div>The '''Ionics OXP''' aims to enhance the northeast corner of Galaxy 2 with a number of interlocking missions revolving around a rich storyline. The OXP also contains 3 new ships available to the player:<br />
<br />
* The [[Ionics Huntsman|Huntsman]]<br />
* The [[Ionics Redback|Redback]]<br />
* The [[Ionics Whitetail|Whitetail]]<br />
<br />
The organisations featured in the OXP are:<br />
<br />
* '''[[The Link]]''', a clandestine organisation that aspires to rid the known Ooniverse of oppressive regimes.<br />
* The '''[[Ramaza Liberation Front]]''', a rebel group opposing the Ramazan government's reign.<br />
* The '''[[Ionics|Ionics Corporation]]''', an aerospace group based in Zaria.<br />
<br />
<br />
==Contributing==<br />
If you are interested in helping out with the OXP, you can contact the author via this articles talk page or on the [http://www.aegidian.org/bb/viewtopic.php?t=1119 Ionics thread] at [http://www.aegidian.org/bb Oolite Bulletins].<br />
<br />
<br />
==Roadmap==<br />
<br />
===Version 1.3===<br />
<br />
# Make a custom primary station that doesn't launch cops<br />
# Set Link Base commodities<br />
# Add pictures to mission screens<br />
# Make some sort of weapons platform for use in the battle (fire plasma, missiles, etc.)<br />
# Make new ships launch from stations instead of spawning in space<br />
# Improve spacelane in Zaria etc.<br />
# Add casinos to Cevera<br />
# Improve Funnelweb (ballturrets, docking bay, etc.)<br />
# Improve the Link Base (cladding, turrets, lights, etc.)<br />
<br />
===Version 2.0===<br />
<br />
# Calculate kills by player<br />
# Setup ranking system for The Link and award medals<br />
# Add Link HQ at Bebege<br />
# Write random mini-missions in sector<br />
# Assassinate dictator mission<br />
# War in Legeara<br />
<br />
<br />
==Changelog==<br />
<br />
===Version 1.2===<br />
<br />
:* Fixed ships to suit external view<br />
:* Change planets government & productivity after war<br />
:* 'When the war is over' scripting<br />
:* Fix 'congrats' message coming from Funnelweb<br />
:* Restrict amount of pirates and traders in Ramaza during war<br />
:* Move the Link base and the battle away from the primary station<br />
:* Make the Whitetail bigger (doubled the size)<br />
<br />
===Version 1.1===<br />
<br />
:* Write a readme file<br />
:* Restrict purchase of Ionics ships to galaxy 1<br />
:* Restrict spawning of Ionics ships to galaxy 1<br />
<br />
<br />
== Download ==<br />
<br />
[http://capnhack.com/hosting/oolite/Oolite/OXPs/ionics-1.1.oxp.zip Ionics OXP 1.1]<br />
<br />
[[Category:Oolite]]</div>Galileohttps://wiki.alioth.net/index.php?title=Ionics_OXP&diff=3801Ionics OXP2006-03-25T05:04:43Z<p>Galileo: /* Roadmap */</p>
<hr />
<div>The '''Ionics OXP''' aims to enhance the northeast corner of Galaxy 2 with a number of interlocking missions revolving around a rich storyline. The OXP also contains 3 new ships available to the player:<br />
<br />
* The [[Ionics Huntsman|Huntsman]]<br />
* The [[Ionics Redback|Redback]]<br />
* The [[Ionics Whitetail|Whitetail]]<br />
<br />
The organisations featured in the OXP are:<br />
<br />
* '''[[The Link]]''', a clandestine organisation that aspires to rid the known Ooniverse of oppressive regimes.<br />
* The '''[[Ramaza Liberation Front]]''', a rebel group opposing the Ramazan government's reign.<br />
* The '''[[Ionics|Ionics Corporation]]''', an aerospace group based in Zaria.<br />
<br />
<br />
==Contributing==<br />
If you are interested in helping out with the OXP, you can contact the author via this articles talk page or on the [http://www.aegidian.org/bb/viewtopic.php?t=1119 Ionics thread] at [http://www.aegidian.org/bb Oolite Bulletins].<br />
<br />
<br />
==Roadmap==<br />
<br />
===Version 1.2===<br />
<br />
:* <s>Fixed ships to suit external view</s><br />
:* <s>Change planets government & productivity after war</s><br />
:* <s>'When the war is over' scripting</s><br />
:* <s>Fix 'congrats' message coming from Funnelweb</s><br />
:* <s>Restrict amount of pirates and traders in Ramaza during war</s><br />
:* <s>Move the Link base and the battle away from the primary station</s><br />
:* <s>Make the Whitetail bigger (doubled the size)</s><br />
<br />
===Version 1.3===<br />
<br />
# Make a custom primary station that doesn't launch cops<br />
# Set Link Base commodities<br />
# Add pictures to mission screens<br />
# Make some sort of weapons platform for use in the battle (fire plasma, missiles, etc.)<br />
# Make new ships launch from stations instead of spawning in space<br />
# Improve spacelane in Zaria etc.<br />
# Add casinos to Cevera<br />
# Improve Funnelweb (ballturrets, docking bay, etc.)<br />
# Improve the Link Base (cladding, turrets, lights, etc.)<br />
<br />
===Version 2.0===<br />
<br />
# Calculate kills by player<br />
# Setup ranking system for The Link and award medals<br />
# Add Link HQ at Bebege<br />
# Write random mini-missions in sector<br />
# Assassinate dictator mission<br />
# War in Legeara<br />
<br />
==Old versions==<br />
<br />
===Version 1.1===<br />
<br />
:* <s>Write a readme file</s><br />
:* <s>Restrict purchase of Ionics ships to galaxy 1</s><br />
:* <s>Restrict spawning of Ionics ships to galaxy 1</s><br />
<br />
== Download ==<br />
<br />
[http://capnhack.com/hosting/oolite/Oolite/OXPs/ionics-1.1.oxp.zip Ionics OXP 1.1]<br />
<br />
[[Category:Oolite]]</div>Galileohttps://wiki.alioth.net/index.php?title=Methods&diff=3640Methods2006-03-05T02:58:22Z<p>Galileo: /* Looking for, and adding ships */</p>
<hr />
<div>'''Methods'''<br />
<br />
Methods are the actions that are performed when conditions (defined in a script) are met, or when a particular set of actions (like ''[[Shipdata.plist#death_actions|death_actions]]'' or ''[[Shipdata.plist#script_actions|script_actions]]'') are called for, or when an AI calls for a script action to be performed.<br />
<br />
All methods are stored in plists as strings (in XML this means between a <string> tag and a </string> closing tag). If they take any parameters then these follow a colon and a space (''': ''') after the 'command' part of the method.<br />
<br />
For example: if the ship containing this ''death_actions'' entry is destroyed - the player gets a message and the sun goes Nova two seconds later!<br />
<br />
<key>death_actions</key><br />
<array><br />
<string>commsMessage: Oh dear [commander_name]!</string><br />
<string>setSunNovaIn: 2.0</string><br />
</array><br />
<br />
== The Mission Screen ==<br />
<br />
'''setGuiToMissionScreen'''<br />
// opens the mission screen<br />
<br />
'''addMissionText: <[[missiontext.plist]] key> '''<br />
// adds text to the mission screen from an entry in [[missiontext.plist]]<br />
// with the given key<br />
<br />
'''showShipModel: <role>'''<br />
// shows a rotating model of a ship with the role given<br />
// role refers to a value in one of [[shipdata.plist]]'s entries'<br />
// ''roles'' key value pair<br />
<br />
'''setMissionMusic: <filename>'''<br />
// plays the music file given<br />
// if it exists within any OXP's ''Music'' folder<br />
<br />
'''setMissionImage: <filename>'''<br />
// displays the picture file given<br />
// if it exists within any OXP's ''Images'' folder<br />
<br />
'''setMissionChoices: <[[missiontext.plist]] key>'''<br />
// sets the array of choices presented at the bottom of the mission page to those described in the<br />
// entry in missiontext.plist that corresponds to the key given<br />
<br />
'''resetMissionChoice'''<br />
// makes missionChoice ''UNDEFINED''<br />
<br />
'''setMissionDescription: <[[missiontext.plist]] key>'''<br />
// sets the short description given on the player's manifest screen<br />
<br />
'''clearMissionDescription'''<br />
// clears the short description<br />
<br />
'''resetScriptTimer'''<br />
// resets a timer for scripting purposes '''deprecated - do not use''<br />
<br />
== Looking for, and adding ships ==<br />
<br />
'''checkForShips: <role>'''<br />
// returns the number of ships found in the current system that match the role<br />
// this number can be queried with [[Methods#Results_from_other_methods|'''shipsFound_number''']]<br />
<br />
'''addShips: <role> <number>'''<br />
// causes a number of ships matching the given role to appear near the withpoint<br />
<br />
'''addSystemShips: <role> <number> <position>'''<br />
// causes a number of ships matching the given role to appear near a point<br />
// on a line from the witchpoint to the planet's station. <position> should be a floating point<br />
// number where 0.0 represents the witchpoint and 1.0 represents the station<br />
<br />
'''addShipsAt: <role> <number> <coordinate scheme> <x> <y> <z>'''<br />
// causes a number of ships matching the given role to appear ''near'' a point<br />
// defined by the <coordinate scheme> and the floating point coordinates x,y and z<br />
// <coordinate scheme> consists of a three letter code:<br />
// <br />
// The first letter indicates the feature that is the origin of the coordinate system.<br />
// w => witchpoint<br />
// s => sun<br />
// p => planet<br />
// <br />
// The next letter indicates the feature on the 'z' axis of the coordinate system.<br />
// w => witchpoint<br />
// s => sun<br />
// p => planet<br />
// <br />
// Then the 'y' axis of the system is normal to the plane formed by the planet, sun and witchpoint.<br />
// And the 'x' axis of the system is normal to the y and z axes.<br />
// So:<br />
// ps: z axis = (planet -> sun) y axis = normal to (planet - sun - witchpoint) x axis = normal to y and z axes<br />
// pw: z axis = (planet -> witchpoint) y axis = normal to (planet - witchpoint - sun) x axis = normal to y and z axes<br />
// sp: z axis = (sun -> planet) y axis = normal to (sun - planet - witchpoint) x axis = normal to y and z axes<br />
// sw: z axis = (sun -> witchpoint) y axis = normal to (sun - witchpoint - planet) x axis = normal to y and z axes<br />
// wp: z axis = (witchpoint -> planet) y axis = normal to (witchpoint - planet - sun) x axis = normal to y and z axes<br />
// ws: z axis = (witchpoint -> sun) y axis = normal to (witchpoint - sun - planet) x axis = normal to y and z axes<br />
// <br />
// The third letter denotes the units used:<br />
// m: meters<br />
// p: planetary radii<br />
// s: solar radii<br />
// u: distance between first two features indicated (eg. spu means that u = distance from sun to the planet)<br />
// <br />
// in witchspace (== no sun) coordinates are absolute irrespective of the system used<br />
<br />
'''addShipsAtPrecisely: <role> <number> <coordinate scheme> <x> <y> <z>'''<br />
// This adds the ships as close as possible to the specified point<br />
<br />
'''addShipsWithinRadius: <role> <number> <coordinate-system> <x> <y> <z> <radius in metres>'''<br />
// Example:<br />
// "addShipsWithinRadius: asteroid 48 wpm 0 0 15000 5000"<br />
// would add a 5km-wide asteroid field with 48 asteroids at a position roughly 15000m towards<br />
// the planet from the witchpoint.<br />
<br />
'''spawn: <role> <number>'''<br />
// adds a number of ships matching <role> near the ship<br />
// that's the target of this script (as [[Shipdata.plist#script_actions|script_actions]] or [[Shipdata.plist#death_actions|death_actions]])<br />
<br />
'''spawnShip: <[[shipdata.plist]] key>'''<br />
// adds a ship with the unique [[shipdata.plist]] key given<br />
// the position and facing of the ship are determined by a ''spawn'' dictionary in the<br />
// ship's shipdata.plist entry with ''position'' and ''facing_position'' as strings describing<br />
// coordinates according to one of the schemes above<br />
<br />
== Changing the universe ==<br />
<br />
'''setSunNovaIn: <seconds>'''<br />
// Sets the sun to go nova after the given time in seconds<br />
<br />
'''sendAllShipsAway'''<br />
// Makes all the ships in the system hyperspace away<br />
<br />
'''setPlanetinfo: <key> <value>'''<br />
// sets an override to the [[planetinfo.plist]] entry for the current system<br />
// the value for the given key is set to match the value<br />
// (see [[planetinfo.plist]])<br />
<br />
'''addPlanet: <[[planetinfo.plist]] key>'''<br />
// adds a planet to the universe from data in [[planetinfo.plist]].<br />
<br />
'''addMoon: <[[planetinfo.plist]] key>'''<br />
// adds a moon to the universe from data in [[planetinfo.plist]].<br />
// (Moons do not get an atmosphere or clouds like planets).<br />
<br />
== Mission Variables ==<br />
<br />
'''set: [[mission_variable]] <value>'''<br />
// sets the [[mission_variable]] to the value given<br />
// the value could be a particular string or numeric value<br />
<br />
'''reset: [[mission_variable]] <value>'''<br />
// sets the [[mission_variable]] to be ''UNDEFINED''<br />
<br />
'''increment: [[mission_variable]]'''<br />
// increases the mission variable's value by 1.0<br />
<br />
'''decrement: [[mission_variable]]'''<br />
// decreases the mission variable's value by 1.0<br />
<br />
'''add: [[mission_variable]] <value>'''<br />
// adds the value given to the [[mission_variable]]<br />
// the value can be a number or a queriable state<br />
// like ''shipsFound_number''<br />
<br />
'''subtract: [[mission_variable]] <value>'''<br />
// subtracts the value given from the [[mission_variable]]<br />
// the value can be a number or a queriable state<br />
// like ''shipsFound_number''<br />
<br />
== Player rewards and penalties==<br />
These methods work on the player, not any other ship.<br />
<br />
'''awardCredits: <number>'''<br />
// awards number of tenths of credits.<br />
<br />
'''awardShipKills: <number>'''<br />
// Adds to the number of kills accredited to the player<br />
<br />
'''setLegalStatus: <number>'''<br />
// Sets the bounty on the player's head.<br />
<br />
'''setFuelLeak: <amount>'''<br />
// removes this amount from the fuel tank every second<br />
// until the tanks drain and self-seal<br />
<br />
'''awardFuel: <amount>'''<br />
// The amount can be positive or negative, expressed in LY of range<br />
// the fuel level is adjusted to a maximum of 7.0LY and minimum of 0.0.<br />
<br />
=== Equipment ===<br />
<br />
'''awardEquipment: <equipment key>'''<br />
// if the player doesn't have the equipment already<br />
// and their ship can be equipped witth it then this fits the<br />
// player's ship with the equipment given<br />
// valid keys can be found in [[equipment.plist]] (they all begin '''EQ_'''):-<br />
// EQ_FUEL<br />
// EQ_MISSILE<br />
// EQ_CARGO_BAY<br />
// EQ_ECM<br />
// EQ_FUEL_SCOOPS<br />
// EQ_ESCAPE_POD<br />
// EQ_ENERGY_BOMB<br />
// EQ_ENERGY_UNIT<br />
// EQ_NAVAL_ENERGY_UNIT<br />
// EQ_DOCK_COMP<br />
// EQ_GAL_DRIVE<br />
// EQ_CLOAKING_DEVICE<br />
// EQ_PASSENGER_BERTH<br />
// EQ_HARDENED_MISSILE<br />
// EQ_FUEL_INJECTION<br />
// EQ_SCANNER_SHOW_MISSILE_TARGET<br />
// EQ_MULTI_TARGET<br />
// EQ_ADVANCED_COMPASS<br />
// EQ_QC_MINE<br />
// EQ_SHIELD_BOOSTER<br />
// EQ_NAVAL_SHIELD_BOOSTER<br />
// EQ_WEAPON_TWIN_PLASMA_CANNON<br />
// EQ_MILITARY_JAMMER<br />
// EQ_MILITARY_SCANNER_FILTER<br />
<br />
'''removeEquipment: <equipment key>'''<br />
// removes the indicated equipment from the player's ship<br />
<br />
'''testForEquipment: <equipment key>'''<br />
// tests whether the player ship has a piece of equipment installed<br />
// returns the result in [[Methods#Results_from_other_methods|'''foundEquipment_bool''']]<br />
<br />
=== Cargo ===<br />
<br />
'''awardCargo: <amount> <[[Commodities|Commodity]] name>'''<br />
// awards a quantity of the cargo named<br />
// the cargo name must match the name in [[commodities.plist]] exactly<br />
<br />
'''removeAllCargo'''<br />
// removes all cargo from the hold with no compensation to the player<br />
// any special cargo is also removed (see below) restoring use of the cargo bay<br />
// Gold, Platinum, and Gemstones are unaffected (they're in the cabin safe).<br />
<br />
'''useSpecialCargo: <description of cargo>'''<br />
// fills the cargo bay withthe cargo described effectively<br />
// disabling the use of the cargo bay until the cargo is removed<br />
<br />
=== Special ===<br />
<br />
'''ejectItem: <[[shipdata.plist]] key>''' <br />
// Creates a ship or other entity from [[shipdata.plist]] and ejects from<br />
// the ship's aft hatch<br />
<br />
'''launchFromStation'''<br />
// forces the player ship to launch<br />
<br />
== Communications ==<br />
<br />
'''commsMessage: ''message'' '''<br />
// sends the player a message<br />
// if the message contains elements enclosed in square brackets ''[like_this]''<br />
// that corresponds to a [[mission_variable]] or keys in [[descriptions.plist]]<br />
// or to special expansions like [commander_name] then these are expanded<br />
// and substituted into the original message<br />
<br />
<br />
<br />
== Querying states ==<br />
<br />
=== Player status ===<br />
<br />
// '''mission_string'''<br />
// returns the key for the current mission<br />
<br />
// '''status_string'''<br />
// returns one of:<br />
// ''STATUS_AUTOPILOT_ENGAGED''<br />
// ''STATUS_DEAD''<br />
// ''STATUS_DEMO''<br />
// ''STATUS_DOCKING''<br />
// ''STATUS_DOCKED''<br />
// ''STATUS_EFFECT''<br />
// ''STATUS_ENTERING_WITCHSPACE''<br />
// ''STATUS_ESCAPE_SEQUENCE''<br />
// ''STATUS_EXITING_WITCHSPACE''<br />
// ''STATUS_EXPERIMENTAL''<br />
// ''STATUS_IN_FLIGHT''<br />
// ''STATUS_IN_HOLD''<br />
// ''STATUS_INACTIVE''<br />
// ''STATUS_LAUNCHING''<br />
// ''STATUS_TEST''<br />
// ''STATUS_WITCHSPACE_COUNTDOWN''<br />
// ''UNDEFINED''<br />
<br />
// '''gui_screen_string'''<br />
// returns one of:<br />
// ''GUI_SCREEN_EQUIP_SHIP''<br />
// ''GUI_SCREEN_INTRO1''<br />
// ''GUI_SCREEN_INTRO2''<br />
// ''GUI_SCREEN_INVENTORY''<br />
// ''GUI_SCREEN_LONG_RANGE_CHART''<br />
// ''GUI_SCREEN_MAIN''<br />
// ''GUI_SCREEN_MARKET''<br />
// ''GUI_SCREEN_MISSION''<br />
// ''GUI_SCREEN_OPTIONS''<br />
// ''GUI_SCREEN_SHORT_RANGE_CHART''<br />
// ''GUI_SCREEN_STATUS''<br />
// ''GUI_SCREEN_SYSTEM_DATA''<br />
// ''UNDEFINED''<br />
<br />
// '''galaxy_number'''<br />
// returns a value between 0 and 7<br />
<br />
// '''planet_number'''<br />
// returns a value between 0 and 255<br />
<br />
// '''score_number'''<br />
// returns the number of the player's current ship kills<br />
<br />
// '''credits_number'''<br />
// returns the player's credits x10<br />
<br />
// '''legalStatus_number'''<br />
// returns the bounty on the players head<br />
<br />
// '''fuel_level_number'''<br />
// returns the fuel level in LY<br />
<br />
// '''dockedAtMainStation_bool'''<br />
// returns ''YES'' if docked at a systems main station, ''NO'' otherwise<br />
<br />
// '''dockedStationName_string'''<br />
// returns ''NONE'' if the player isn't docked, the name of the station (from [[shipdata.plist]]) if it is, ''UNKNOWN'' otherwise<br />
<br />
=== Results from other methods ===<br />
<br />
// '''shipsFound_number'''<br />
// returns the number of ships found by ''checkForShips:''<br />
<br />
// '''foundEquipment_bool'''<br />
// returns the result of the last ''testForEquipment''<br />
// returns ''YES'' if the equipment was found, ''NO'' otherwise<br />
<br />
// '''missionChoice_string'''<br />
// returns the result of the player's selection from a list of missionChoices<br />
// returns ''UNDEFINED'' or the key for the chosen option<br />
<br />
=== Random numbers ===<br />
<br />
// '''d100_number'''<br />
// returns a random value from 0 to 99<br />
<br />
// '''pseudoFixedD100_number'''<br />
// returns a random number from 0 to 99 that will<br />
// remain fixed as long as the player remains in this system<br />
<br />
=== Time ===<br />
<br />
// '''clock_number'''<br />
// returns the game time in seconds<br />
// '''clock_secs_number'''<br />
// returns the game time in seconds<br />
// '''clock_mins_number'''<br />
// returns the game time in minutes<br />
// '''clock_hours_number'''<br />
// returns the game time in hours<br />
// '''clock_days_number'''<br />
// returns the game time in days<br />
<br />
=== System states ===<br />
<br />
// '''sunWillGoNova_bool'''<br />
// returns whether the sun is going to go nova, either ''YES'' or ''NO''<br />
<br />
// '''sunGoneNova_bool'''<br />
// returns whether the sun has gone nova, either ''YES'' or ''NO''<br />
<br />
// '''systemGovernment_string'''<br />
// returns one of:-<br />
// ''Anarchy''<br />
// ''Feudal''<br />
// ''Multi-Government''<br />
// ''Dictatorship''<br />
// ''Communist''<br />
// ''Confederacy''<br />
// ''Democracy''<br />
// ''Corporate State''<br />
<br />
// '''systemGovernment_number'''<br />
// returns a value from 0 to 7<br />
<br />
// '''systemEconomy_number'''<br />
// returns a value from 0 to 7<br />
<br />
// '''systemTechLevel_number'''<br />
// returns a value from 0 to 14<br />
<br />
// '''systemPopulation_number'''<br />
// returns a value representing the system's population<br />
<br />
// '''systemProductivity_number'''<br />
// returns a value representing the system's productivity<br />
<br />
// '''scriptTimer_number'''<br />
// returns the script timer's current value in seconds '''(deprecated - do not use)'''<br />
<br />
== Debugging scripts ==<br />
<br />
'''debugOn'''<br />
// sends script debugging messages to the console.<br />
<br />
'''debugOff'''<br />
// cancels script debugging messages<br />
<br />
'''debugMessage: <message>'''<br />
// sends the given message to the console.<br />
<br />
== AI ==<br />
<br />
Note that although most of these methods affect the player, some can also be utilised by an AI. <br />
*[[OXP howto AI]].<br />
<br />
[[Category:Oolite]]</div>Galileohttps://wiki.alioth.net/index.php?title=Llama&diff=3636Llama2006-03-01T08:01:18Z<p>Galileo: fixed table and switched millibars to SI units</p>
<hr />
<div>{{Infobox ShipStats Oolite| title=Llama<br />
|image = [[Image:llama-specsheet.png]]<br />
|dimensions = 69 x 18.5 x 91<br />
|capacity = 20 TC<br />
|gunmounts = Fore, Aft<br />Port, Starboard<br />
|maxspeed = 0.35 LM<br />
|maneuverability = Roll: 2.0<br />Pitch: 1.0<br />
|energybanks = 4<br />
|milshields = Yes<br />
|shieldboost = Yes<br />
|hyperspace = Yes<br />
|isoxp = OXP<br />
|isplayer = Yes<br />
}}<br />
<br />
<br />
== Overview == <br />
The Llama is a medium-sized trader vessel, produced as an unlicensed copy of the Griffin Systems ship of the same name (which has never actually entered service with us). It is produced by the Tsierk Letaneya design bureau, within the Communist Hegemony of the Third Gentile Cluster, in the Galileo Sector.<br />
<br />
<br />
Although never as popular as the older and somewhat more rugged 'Cobra' series from [[Cowell & MgRath]], the Llama offers traders a very reasonable package; with good performance and decent hold-space, packed inside a compact outline.<br />
<br />
== Design == <br />
The Llama's admirable dimensions are, in fact, achieved through the use of a 'catamaran' hull system, which was considered quite radical when the ship was first unveiled in 3110.<br />
<br />
<br />
[[Image:llama-escort.png|thumb|left|The Llama is a common choice with Escort Jockeys]]<br />
<br />
By placing the crew and cargo in a separate, central, module - away from the twin engine units - Tsierk Letaneya were able to make use of the extremely powerful, but rather 'dirty', TV101 'Energia' engine units, manufactured by Klimov Corporation, of New St Petersburg, Luna (in the Luna/Earth bi-planetary system, of Old Sol).<br />
<br />
<br />
This also makes the Llama quite manouvreable - as it places the power units outboard, with the main centre of mass just infront of them, in the middle of the ship.<br />
<br />
== Specification == <br />
[[Image:lama-trader.png|thumb|left|Legitimate traders advertise the fact with navigation lights]]Klimov have many centuries of experience in producing high performance, low cost engine units for the Military aerospace industries (as well as the ground-based power units, familiar from their use in the tarraforming business).<br />
<br />
<br />
The Energia features an enhanced version of Prosset's well-established proton-tightening afterburner, using liquid-helium-cooled, super-conducting meson coils to further tighten the propulsive flux. These give off a considerable amount of alpha radiation, and would not be considered suitable for incorporation into a standard hull. By moving them outboard, Tsierk Letaneya have effectively made the radiation "someone else's problem".<br />
<br />
<br />
The ship also features an extensive array of components sourced from the Communist Hegemony's military surplus budget, including a BARK target recognition system, the 'Monitor' space compass, Serebrany-Lantseer Energy Deflection Shields, and (perhaps unusually) a docking computer based on a Cray laptop from Tadpole Incorporated.<br />
<br />
<br />
All of these components are standard fittings aboard the Communist Hegemony's 'Herald' class military interceptors, however, and many within the shipping industry point to this - and other features of the Llama's overall specifications - as evidence that Tsierk Letaneya are operating a subsidised industry. This does not stop many pilots from cashing-in on the Llama's undeniable qualities as a small, agile trader and lightweight fighter craft.<br />
<br />
== Atmospheric Capabilities == <br />
[[Image:llama-lake.png|thumb|left|A Llama during take off: any large lake will do]][[Image:llama-lakeside.png|thumb|right|A Llama pilot takes some well-earned planet-leave]]As its appearance might suggest, the Llama is quite manoeuvrable within atmospheric conditions, having a hull which is designed to act, in part, as a flying-wing. As such, it would be capable of landing on any planet with an atmosphere of up to 200 kilopascals of atmospheric pressure, and up to 2Gs standard gravity - as long as the local government was either unaware of (or unconcerned by) the risk of pollution, of course!<br />
<br />
<br />
There must also be a substantial-enough body of water (or similar liquid) for the ship to settle upon, as it uses its engine pods as loadbearing floats in order to avoid the need for complicated landing gear, and to facilitate trading on backward planets without involving the GalCop in the transaction.<br />
<br />
== Summary == <br />
[[Image:llama-tailview.png|thumb|left|The Llama's main frame unit consists of a lightweight, but very strong, U-shaped strut, formed from finely spun Buckey-fibres: this ties the three main hull units together]]Because of it's military antecedents, the Llama is able to maintain a fighter-like profile, while offering decent cargo-carrying capabilities. This has made it a popular choice for Bounty Hunters, Escort Jockeys, and, of course, Pirates.<br />
<br />
<br />
[[Image:Alpaca.jpg|thumb|right|Popular with Cockroaches: The 'Alpaca' variant of the Llama]]Several pirate groups are known to have produced a 'breathed-upon' version of the Llama, unofficially known as the 'Alpaca' - recognisable by the large 'Jolly Roger' emblems it sports. This is produced at the cost of a certain amount of cargo space, as well as the tendency for radioactive leakage to occur into the crew zone. It is popular with Cockroaches, and other pilots who are either radiation-resistant, or who don't mind the occasional mutation.<br />
<br />
== Download ==<br />
[http://capnhack.com/hosting/oolite/Oolite/OXPs/llama.zip Llama OXP]<br />
<br />
[[Category:Oolite]]</div>Galileohttps://wiki.alioth.net/index.php?title=Talk:Short_Range_Chart&diff=3544Talk:Short Range Chart2006-02-25T14:28:26Z<p>Galileo: </p>
<hr />
<div>I still think the dictatorship looks like the Black Power synbol... oh well! The galactic panthers in E-F-F-E-C-T<br />
<br />
Heh, yes, it looks more like a revolutionary sign than an opressive one... Maybe tilt it 45 deg. clockwise, fist pounding down? Also, Democracy, There should be a better icon for that, now it's so... nondescript.--[[User:Rxke|Rxke]] 21:50, 23 February 2006 (UTC)<br />
<br />
nondescript? it's a ballot box! that's for all to see. especially analphabets.<br/><br />
difficult to come up with something better for dictatorship. it looks like singular power, ''and'' mano negro. --[[User:Murgh|Murgh]] 22:49, 23 February 2006 (UTC)<br />
<br />
:How about a boot stomping on a human face -- forever. :) --[[User:Galileo|Galileo]] 14:28, 25 February 2006 (UTC)</div>Galileohttps://wiki.alioth.net/index.php?title=Ionics_OXP&diff=3414Ionics OXP2006-02-20T05:46:09Z<p>Galileo: /* Version 1.3 */</p>
<hr />
<div>The '''Ionics OXP''' aims to enhance the northeast corner of Galaxy 2 with a number of interlocking missions revolving around a rich storyline. The OXP also contains 3 new ships available to the player:<br />
<br />
* The [[Ionics Huntsman|Huntsman]]<br />
* The [[Ionics Redback|Redback]]<br />
* The [[Ionics Whitetail|Whitetail]]<br />
<br />
The organisations featured in the OXP are:<br />
<br />
* '''[[The Link]]''', a clandestine organisation that aspires to rid the known Ooniverse of oppressive regimes.<br />
* The '''[[Ramaza Liberation Front]]''', a rebel group opposing the Ramazan government's reign.<br />
* The '''[[Ionics|Ionics Corporation]]''', an aerospace group based in Zaria.<br />
<br />
<br />
==Contributing==<br />
If you are interested in helping out with the OXP, you can contact the author via this articles talk page or on the [http://www.aegidian.org/bb/viewtopic.php?t=1119 Ionics thread] at [http://www.aegidian.org/bb Oolite Bulletins].<br />
<br />
<br />
==Roadmap==<br />
<br />
===Version 1.2===<br />
<br />
# Make a custom primary station that doesn't launch cops<br />
# Set Link Base commodities<br />
:* <s>Change planets government & productivity after war</s><br />
:* <s>'When the war is over' scripting</s><br />
:* <s>Fix 'congrats' message coming from Funnelweb</s><br />
:* <s>Restrict amount of pirates and traders in Ramaza during war</s><br />
:* <s>Move the Link base and the battle away from the primary station</s><br />
:* <s>Make the Whitetail bigger (doubled the size)</s><br />
<br />
===Version 1.3===<br />
<br />
# Add pictures to mission screens<br />
# Make some sort of weapons platform for use in the battle (fire plasma, missiles, etc.)<br />
# Make new ships launch from stations instead of spawning in space<br />
# Improve spacelane in Zaria etc.<br />
# Add casinos to Cevera<br />
# Improve Funnelweb (ballturrets, docking bay, etc.)<br />
# Improve the Link Base (cladding, turrets, lights, etc.)<br />
<br />
===Version 2.0===<br />
<br />
# Calculate kills by player<br />
# Setup ranking system for The Link and award medals<br />
# Add Link HQ at Bebege<br />
# Write random mini-missions in sector<br />
# Assassinate dictator mission<br />
# War in Legeara<br />
<br />
==Old versions==<br />
<br />
===Version 1.1===<br />
<br />
:* <s>Write a readme file</s><br />
:* <s>Restrict purchase of Ionics ships to galaxy 1</s><br />
:* <s>Restrict spawning of Ionics ships to galaxy 1</s><br />
<br />
== Download ==<br />
<br />
[http://capnhack.com/hosting/oolite/Oolite/OXPs/ionics-1.1.oxp.zip Ionics OXP 1.1]<br />
<br />
[[Category:Oolite]]</div>Galileohttps://wiki.alioth.net/index.php?title=Oolite_Keyboard_Controls&diff=3404Oolite Keyboard Controls2006-02-19T07:50:41Z<p>Galileo: /* Default Key Assignments */</p>
<hr />
<div>== Default Key Assignments ==<br />
<br />
Linux users will find the following key assignments in <code> /usr/lib/Oolite/oolite.app/Contents/Resources/Config/keyconfig.plist </code> (assuming you did a default installation!).<br />
<br />
<br />
{| border="1" cellpadding="9" align="center" <br />
|+ <br />
|-style="background:darkslateblue; color:white"<br />
! Action !! Key !! Keycode (Dec) !! Keycode (Hex) !! Notes <br />
|-align="center" <br />
! Roll Left <br />
| Left arrow || 253 || FD || <br />
|-align="center"<br />
! Roll Right<br />
| Right arrow || 252 || FC || <br />
|-align="center"<br />
! Pitch Forward<br />
| Up arrow || 255 || FF || <br />
|-align="center"<br />
! Pitch Back<br />
| Down arrow || 254 || FE || <br />
|-align="center"<br />
! Increase Speed<br />
| w || 119 || 77 || <br />
|-align="center"<br />
! Inject Fuel<br />
| i || 105 || 69 || <br />
|-align="center"<br />
! Decrease Speed<br />
| s || 115 || 73 || <br />
|-align="center"<br />
! Fire Lasers<br />
| a || 97 || 61 || <br />
|-align="center"<br />
! Target Missile<br />
| t || 116 || 74 || <br />
|-align="center"<br />
! Untarget Missile<br />
| u || 117 || 75 || <br />
|-align="center"<br />
! Launch Missile <br />
| m || 109 || 6D || <br />
|-align="center"<br />
! Next Missile<br />
| y || 121 || 79 || <br />
|-align="center"<br />
! Activate Ident System <br />
| r || 114 || 72 || <br />
|-align="center"<br />
! Activate ECM <br />
| e || 101 || 65 || <br />
|-align="center"<br />
! Launch Escape Pod <br />
| Esc || 27 || 1B || <br />
|-align="center"<br />
! Energy Bomb <br />
| Tab || 9 || 09 || <br />
|-align="center"<br />
! Galactic Hyperspace <br />
| g || 103 || 67 || <br />
|-align="center"<br />
! Emergency Hyperdrive <br />
| H || 72 || 48 || ?? <br />
|-align="center"<br />
! Hyperspace <br />
| h || 104 || 68 || <br />
|-align="center"<br />
! Jumpdrive <br />
| j || 106 || 6A || <br />
|-align="center"<br />
! Dump Cargo <br />
| d || 100 || 64 || <br />
|-align="center"<br />
! Autopilot <br />
| c || 99 || 63 || <br />
|-align="center"<br />
! Autodock <br />
| D || 68 || 44 || <br />
|-align="center"<br />
! Take a Snapshot <br />
| * (shift+8) || 42 || 2A || Written to /usr/lib/Oolite<br />
|-align="center"<br />
! Docking Music Toggle<br />
| s || 115 || 73 || Only if Docking Computer fitted!<br />
|-align="center"<br />
! Scanner Zoom <br />
| z || 122 || 7A || <br />
|-align="center"<br />
! Map Dump <br />
| ! (shift+1) || 33 || 21 || <br />
|-align="center"<br />
! Map Home <br />
| || 302 || || ??<br />
|-align="center"<br />
! Comms Log <br />
| ` || 96 || 60 || <br />
|-align="center"<br />
! Next Compass Mode <br />
| \ || 92 || 5C || <br />
|-align="center"<br />
! Display Frame Rate<br />
| F || || || <br />
|}<br />
<br />
<br />
<BR><br />
<br />
== Changing Key Assignments ==<br />
<br />
If you want to change key assignments ''don't'' alter the default file. Instead copy <code> keyconfig.plist </code> from <br />
<code> /usr/lib/Oolite/oolite.app/Contents/Resources/Config/ </code> to <br />
<code> /usr/lib/Oolite/AddOns/Config/</code>. <br />
(Note that you may need to create the Config directory first.)<br />
<br />
<br />
You can edit <code> keyconfig.plist </code> with any standard text editor. You'll find a list of Linux keycodes [http://www.comptechdoc.org/os/linux/howlinuxworks/linux_hlkeycodes.html here]. Note that Oolite uses ''decimal'' values whereas most keycodes are expressed in ''hexadecimal''. This can cause confusion. For example the comma key produces a keycode of 2C (hex) which translates to 44 (decimal), whereas keycode 44 (hex) refers to the uppercase "D" key, which is actually 68 (decimal)! (If you don't have a hex/decimal calculator handy try [http://www.lookuptables.com/ this table] or [http://www.blooberry.com/indexdot/color/hexcalc.htm this online converter].)<br />
<br />
== Undocumented Keys ==<br />
<br />
The following keys aren't yet official so your mileage may vary!<br />
<br />
<br />
{| border="1" cellpadding="9" align="center" <br />
|+ <br />
|-style="background:darkslateblue; color:white"<br />
! Action !! Key !! Keycode (Dec) !! Keycode (Hex) !! Notes <br />
|-align="center" <br />
! Toggle Mouse Conrol <br />
| Shift + M || 77 || 4D || When activated, the mouse becomes a virtual joystick. The left mouse button fires and the right should re-centre your ship.<br />
|-<br />
|}<br />
<br />
<br />
<BR><br />
<br />
== Silly Keyboard Tricks ==<br />
<br />
* Change <code> key_launch_missile </code> to 112. Now you'll need to hit "p" to launch a missile - which also pauses the game. You'll sometimes get a nice snapshot of the departing missile!<br />
<br />
<br />
[[category:oolite]]</div>Galileohttps://wiki.alioth.net/index.php?title=OXP&diff=3403OXP2006-02-19T07:43:37Z<p>Galileo: </p>
<hr />
<div>[[Image:oolite-oxp-icon.png|100px|right|OXP icon]]<br />
An '''OXP''' (Oolite eXpansion Pack) is an enhancement to the game [[Oolite]]. Typically, an OXP is downloaded as a ZIP file, which is expanded and placed in Oolite's AddOns folder. The OXP itself is a folder which takes the form of the icon above, which Oolite scans when it is started. An OXP could be a new game object (such as a ship, space station or a moon), a mission, or a combination of several elements. OXPs can use all of the facilities of Oolite, including some that are not used in the standard, unexpanded game.<br />
<br />
== Downloading OXPs ==<br />
<br />
Most OXPs are found at [http://capnhack.com/hosting/oolite/Oolite/OoSat.html The Oolite Satellite Resource Site]<br />
<br />
== Installing an OXP ==<br />
Unzip the OXP and place it in the folder named '''AddOns'''. This is found in different locations, depending on the platform:<br />
<br />
==='''Macintosh'''=== Found in the folder that contains the Oolite application. <br />
<br />
'''Troubleshooting:''' If you get an error saying "The item could not be moved because "AddOns" cannot be modified", that can happen if you weren't the user that installed Oolite.<br />
The solution is to put the OXP's of your choice in '''~/Library/Application&nbsp;Support/Oolite/AddOns/''' instead (you may need to create this folder). <br />
The error could also be triggered because you’re running from the disk image, you’ll need to copy the game somewhere else. Having done so, if you still get the error, use the Get Info command on the AddOns folder, open the Ownership & Permissions pane and check that it says You Can: Read & Write.<br />
<br />
==='''Linux'''=== If the game was installed system-wide, it is in '''/usr/lib/Oolite/AddOns'''. If it was installed just for the currently logged in user, it will be in the user's home directory, in '''$HOME/.local/lib/Oolite/AddOns'''<br />
<br />
==='''Win32'''=== If the installable package was used (post Jan 06) then the AddOns folder needs to be created in '''C:\Programs Files\Oolite'''. Note that this applies if the default installation location is used. If the install location is changed then use the path to the Oolite folder that correspnds to your installation. <br />
If the GNUStep dedicated versions (pre-Jan 2006) is used, then the AddOns folder must be created in the oolite.app folder.<br />
<br />
<br />
After unzipping the file, make sure that it is ''the'' OXP folder that put into the AddOns directory - some zipped OXPs can contain a top level folder with a readMe file, and the actual OXP folder is a level further down. If this is the case, move the item with the '''.oxp''' extension into the AddOns folder.<br />
<br />
== Caveats ==<br />
<br />
If you purchase a ship that is an OXP ship and save the game, you will only be able to load that commander as long as this OXP is installed in AddOns. If it's not, Oolite will give you an error instead of trying to load the commander.<br />
<br />
== Creating an OXP ==<br />
<br />
It is intended to be easy to create expansion packs. With a few simple [[List_of_software|tools]], a player can make small or big changes, and customize the gaming experience.<br />
<br />
* [[OXP howto|How to make OXPs]]<br />
<br />
<br />
[[Category:Oolite]]<br />
[[Category:Factual]]</div>Galileohttps://wiki.alioth.net/index.php?title=OXP_howto_AI&diff=3402OXP howto AI2006-02-19T07:39:25Z<p>Galileo: more tidying</p>
<hr />
<div>'''AI Script Format'''<br />
<br />
The AI system consists of a [[Stacked AI|stack]] of [[state machine]]s (only the top one of which is active), which respond to game events sent to them as [[Messages|messages]]. They respond by calling a series of [[methods]] which affect the behaviour of the [[entity]] and possibly trigger changes to the '''AI''' by changing the [[state]] or (more drastically) the state machine.<br />
<br />
Each state machine (or AI script) is described in a property list in either [[ASCII]] or [[XML]] format, which can be edited with a text editor or with Property List Editor. The structure is of a dictionary containing each of the machine's possible states referenced by an identifying state name. Each state comprises a dictionary of responses to messages the AI might receive, referenced by the message itself. Each response is an array of methods that will be called when the AI receives that message.<br />
<br />
The AI function calls within a message handler are separated from each other by a comma. If a function takes a parameter the value is separated from the function name by a colon and a space, and both the function name and value are enclosed in double quotes.<br />
<br />
In [[ASCII]] format a simple (two-state) machine looks like this:<br />
{<br />
"STATE_1" = {<br />
"ENTER" = ();<br />
"MESSAGE_A" = ("method1: value", method2, method3);<br />
"MESSAGE_B" = (method4, "setStateTo: STATE_2");<br />
EXIT = ();<br />
UPDATE = ();<br />
};<br />
"STATE_2" = {<br />
"ENTER" = ();<br />
"MESSAGE_A" = ("method1: another_value", method5);<br />
"MESSAGE_B" = (method6, method7, "setStateTo: STATE_1");<br />
EXIT = ();<br />
UPDATE = ();<br />
};<br />
}<br />
The same script in [[twostateXML|XML]].<br />
<br />
<br />
== AI ==<br />
<br />
{| border="1" cellpadding="5" style="width:100%<br />
!width="225"|Method<br />
!Description<br />
|-<br />
|'''exitAI'''<br />
|Exits current AI.<br />
|-<br />
|'''messageMother:(NSString *)msgString'''<br />
|Sends a AImessage to the mothership/leader of a group.<br />
<br />
Example:<br />
INCOMING_MISSILE = ("messageMother: INCOMING_MISSILE");<br />
The mothership will then behave as if it was targetted by the missile.<br />
|-<br />
|'''pauseAI:(NSString *)intervalString'''<br />
|Sets AI think-time in seconds.<br />
|-<br />
|'''setAITo:(NSString *)aiString'''<br />
|Pauses current AI and switches to anotherAI.plist, this becomes the top AI on the 'AI-stack'.<br />
When anotherAI.plist exits ([[exitAI]]), the previousAI becomes topAI again and AI-state is messaged RESTARTED.<br />
|-<br />
|'''setStateTo: SOMESTATE'''<br />
|Changes the AI state to SOMESTATE.<br />
|-<br />
|'''switchAITo:(NSString *)aiString'''<br />
|Switches entity AI to another *AI.plist, the previous AI will be exited.<br />
|}<br />
<br />
<br />
== AI choices ==<br />
<br />
{| border="1" cellpadding="5" style="width:100%<br />
!width="225"|Method<br />
!Description<br />
|-<br />
|'''fightOrFleeHostiles'''<br />
|Has entity consider whether to fight, deploy missiles or flee. Returns "FIGHTING", "DEPLOYING_ESCORTS" or "FLEEING".<br />
|-<br />
|'''fightOrFleeMissile'''<br />
|Deals with missiles, launches ECM if available, flees if not, marks as offender if police.<br />
|}<br />
<br />
<br />
== Perform Action ==<br />
<br />
{| border="1" cellpadding="5" style="width:100%<br />
!width="225"|Method<br />
!Description<br />
|-<br />
|'''acceptDistressMessageFrom:(ShipEntity *)other'''<br />
|Has police either respond to a distress call, or possibly decide it is too busy or too scared.<br />
|-<br />
|'''becomeEnergyBlast'''<br />
|Used in the [[Q bomb]].<br />
|-<br />
|'''becomeExplosion'''<br />
|The entity model is replaced by an explosion.<br />
|-<br />
|'''becomeLargeExplosion'''<br />
|Used at player entity death, not for use in other instances.<br />
|-<br />
|'''dealEnergyDamageWithinDesiredRange'''<br />
|Needs desiredRange to be set first, then deals [[weaponEnergy]] ([[Shipdata.plist]]) damage within this sphere. <br />
|-<br />
|'''deployEscorts'''<br />
|Deploys an escort.<br />
|-<br />
|'''ejectCargo'''<br />
|Ejects cargo.<br />
|-<br />
|'''enterTargetWormhole'''<br />
|Will locate nearest wormhole, and enter it.<br />
|-<br />
|'''escortCheckMother'''<br />
|Returns "ESCORTING" or "NOT_ESCORTING".<br />
|-<br />
|'''fireECM'''<br />
|Used by stations and hermits to engage ECM.<br />
|-<br />
|'''groupAttackTarget'''<br />
|All ships in group will have their targets set to this entity's target and performAttack.<br />
|-<br />
|'''landOnPlanet'''<br />
|Selects the nearest planet it can find, lands (10km from planet) and 'removes' the entity.<br />
|-<br />
|'''Launch..''Some''Ship'''<br />
|Launches a ship fron a dockable entity, various types of this method exist.<br />
* LaunchDefenceShip <br />
* LaunchMiner<br />
* LaunchPolice <br />
* LaunchScavenger<br />
|-<br />
|'''markTargetForFines'''<br />
|Deals out a fine to target.<br />
Example:<br />
"markTargetForFines: 100"<br />
Will fine the target 10Cr. N.b. for commercial transactions "[[awardMoney]] -$" is a more suitable method.<br />
|-<br />
|'''markTargetForOffence:(NSString*) valueString'''<br />
|Has police mark up the criminal record ([[Legal status]]) of target entity.<br />
|-<br />
|'''messageMother:(NSString *)msgString'''<br />
|Sends a AImessage to the mothership/leader of a group.<br />
Example:<br />
INCOMING_MISSILE = ("messageMother: INCOMING_MISSILE");<br />
The mothership will then behave as if it was targetted by the missile.<br />
|-<br />
|'''performAttack'''<br />
|Attacks target.<br />
|-<br />
|'''performCollect'''<br />
|Performs 'collection' of target.<br />
|-<br />
|'''performDocking'''<br />
|NOT YET IMPLEMENTED.<br />
|-<br />
|'''performEscort'''<br />
|Performs escorting.<br />
|-<br />
|''performFaceDestination'''<br />
|Has entity face destination.<br />
|-<br />
|'''performFlee'''<br />
|Sets the caller (AI) to flee from it's primary target at maximum speed. If the caller has a cloacking device, it will be activated.<br />
|-<br />
|'''performFlyToRangeFromDestination'''<br />
|Sets the AI's current state to CONDITION_FLY_RANGE_FROM_DESTINATION. While in this state the entity will attempt to fly to its current destination, stopping at the desired range from it.<br />
|-<br />
|'''performFlyToPlanet'''<br />
|Used in shuttleAI. combined method to target and fly towards planet?<br />
|-<br />
|'''performHold'''<br />
|Performs idleness while tracking a potential target, speed is set to zero. [[frustration]] level is reset.<br />
|-<br />
|'''performHyperSpaceExit'''<br />
|Gets a list of destinations within range, checks if clear of nearby masses, and select one at random. May return "WITCHSPACE UNAVAILABLE" or "WITCHSPACE BLOCKED".<br />
|-<br />
|'''performIdle'''<br />
|Performs idleness. Ship corrects its roll and pitch to 'horizontal' flight, speed is unaffected. [[frustration]] level is reset to zero.<br />
|-<br />
|'''performIntercept'''<br />
|Performs target interception.<br />
|-<br />
|'''performLanding'''<br />
|Same as landOnPlanet, duplicate method or no longer in use?<br />
|-<br />
|'''performMining'''<br />
|Performs mining. (Finds, intercepts and shoots asteroids with [[mining]] laser, if fitted.)<br />
|-<br />
|'''performTumble'''<br />
|Performs random pitch and roll, 'evasive maneuvers'.<br />
|-<br />
|'''setSpeedTo:(NSString *)speedString'''<br />
|Sets desired speed to an absolute value, entity cannot go faster than maxspeed value determined in the [[shipdata.plist]]. If speed is above maxspeed, entity will use fuelinjectors if available. <br />
|-<br />
|'''setSpeedFactorTo:(NSString *)speedString'''<br />
|Sets the desired speed to a percentage of maxspeed (0->1=0%->100%). If speedfactor is set above 100%, entity will use fuelinjectors if available.<br />
|-<br />
|'''setUpEscorts'''<br />
|Useful to quickly establish (by name and number the [[shipdata.plist]] prescribed) escorts, when a ship is introduced to a system.<br />
|-<br />
|'''suggestEscort'''<br />
|Has an escort seek employment and either gets accepted or rejected by the "mother".<br />
|-<br />
|'''switchLightsOff'''<br />
|If an entity has lights (or flashers), this command will turn them off. Default state is on. (See [[shipdata.plist]])<br />
|-<br />
|'''switchLightsOn'''<br />
|Will turn flashers back on.<br />
|-<br />
|'''wormholeEntireGroup'''<br />
|Wormholes ships in this group.<br />
|-<br />
|'''wormholeEscorts'''<br />
|Wormholes official escorts.<br />
|-<br />
|'''wormholeGroup'''<br />
|Wormholes ships in group of which this is a leader.<br />
|}<br />
<br />
<br />
== Navigation ==<br />
<br />
{| border="1" cellpadding="5" style="width:100%<br />
!width="225"|Method<br />
!Description<br />
|-<br />
|'''getWitchspaceEntryCoordinates'''<br />
|Calculates coordinates from the nearest station it can find, or just fly 10s forward.<br />
|-<br />
|'''recallDockingInstructions'''<br />
|...<br />
|-<br />
|'''requestDockingCoordinates'''<br />
|Requests coordinates from the nearest station it can find (which may be a Rock hermit).<br />
|-<br />
|'''setCoordinates:(NSString *)system_x_y_z'''<br />
|Sets destination coords, see '''addShipsAt'''.<br />
|-<br />
|'''setCourseToPlanet'''<br />
|Selects the nearest planet it can find, reaching desired range 50 km from the planet.<br />
|-<br />
|'''setCourseToWitchpoint'''<br />
|Sets destination coords to Witchpoint area.<br />
|-<br />
|'''setDesiredRangeTo:(NSString *)rangeString'''<br />
|Some methods (such as scanForNearestMerchantmen, checkCourseToDestination, checkDistanceTravelled, etc) require a "desired range" parameter to be set before they can be used.<br />
<br />
This method is used to set the desired range. There is only one value for desired range within an instance of the AI. The value of desired range is modified internally by AI methods such as fightOrFleeMissile, setCourseToWitchpoint, and setPlanetPatrolCoordinates.<br />
|-<br />
|'''setDestinationFromCoordinates'''<br />
|Enables the plotting of manual waypoints.<br />
|-<br />
|'''setDestinationToCurrentLocation'''<br />
|This method sets the destination of the current entity to its current location plus a random offset of up to 0.5 metres in the X, Y, and Z coordinates. This can be used to make a ship idle in a small area of space without being completely still.<br />
|-<br />
|'''setDestinationToDockingAbort'''<br />
|DockingAbort coordinates... X distance from the dockingslit?<br />
|-<br />
|'''setDestinationToStationBeacon'''<br />
|Gets station beacon position.<br />
|-<br />
|'''setDestinationToTarget'''<br />
|Sets destination to target coords.<br />
|-<br />
|'''setDestinationToWitchpoint'''<br />
|Sets destination coordinates to WitchspaceExitPosition.<br />
|-<br />
|'''setDestinationWithinTarget'''<br />
|Handy for ramming and racing.<br />
|-<br />
|'''setPlanetPatrolCoordinates'''<br />
|Check we've arrived near the last given coordinates.<br />
|-<br />
|'''setSunSkimEndCoordinates'''<br />
|...<br />
|-<br />
|'''setSunSkimExitCoordinates'''<br />
|...<br />
|-<br />
|'''setSunSkimStartCoordinates'''<br />
|...<br />
|}<br />
<br />
<br />
== Communication ==<br />
<br />
{| border="1" cellpadding="5" style="width:100%<br />
!width="225"|Method<br />
!Description<br />
|-<br />
|'''broadcastDistressMessage'''<br />
|Locates all the stations, bounty hunters and police ships in range and tells them that you are under attack.<br />
|-<br />
|'''commsMessage:(NSString *)valueString'''<br />
|Broadcasts a general message to player.<br />
Example:<br />
"sendCommsMessage: [thargoid_curses]"<br />
|-<br />
|'''patrolReportIn'''<br />
|...<br />
|-<br />
|'''sendTargetCommsMessage:(NSString*) message'''<br />
|Sends any message to the established (found) target.<br />
<br />
Example:<br />
"sendTargetCommsMessage: Listen to me!!"<br />
|}<br />
<br />
== Locating entities ==<br />
<br />
All these methods require a range to be set by setDesiredRange or by <scanner_range> in [[shipdata.plist]], all will return the message TARGET_FOUND or NOTHING_FOUND. The calling entity remembers the found target, but it does not become the current (universal) target. It can be made the current target by responding to the TARGET_FOUND message with a call to setTargetToFoundTarget.<br />
<br />
<br />
{| border="1" cellpadding="5" style="width:100%<br />
!width="225"|Method<br />
!Description<br />
|-<br />
|'''findNearestPlanet'''<br />
|Will scan for planetentity.<br />
|-<br />
|'''scanForFormationLeader'''<br />
|Locates the nearest suitable formation leader in range.<br />
|-<br />
|'''scanForHostiles'''<br />
|Locates all the ships in range targeting the receiver and chooses the nearest.<br />
|-<br />
|'''scanForLoot'''<br />
|Locates the nearest debris in range.<br />
|-<br />
|'''scanForNearestMerchantmen'''<br />
|Locates the nearest merchantman in range.<br />
|-<br />
|'''scanForNearestShipWithRole:(NSString*) scanRole'''<br />
|Locates all the ships in range and chooses the nearest.<br />
|-<br />
|'''scanForNonThargoid'''<br />
|Locates all the non thargoid ships in range and chooses the nearest.<br />
|-<br />
|'''scanForOffenders'''<br />
|Locates all the ships in range and compares their legal status or bounty, and chooses the worst offender.<br />
|-<br />
|'''scanForRandomLoot'''<br />
|Locates the all debris in range and chooses a piece at random from the first sixteen found.<br />
|-<br />
|'''scanForRandomMerchantmen'''<br />
|Locates one of the merchantman in range.<br />
|-<br />
|'''scanForRocks'''<br />
|Locates the all boulders and asteroids in range and selects one of up to 16. Returns "TARGET_FOUND" or"NOTHING_FOUND".<br />
|-<br />
|'''scanForThargoid'''<br />
|Locates all the thargoid warships in range and chooses the nearest.<br />
|-<br />
|'''checkCourseToDestination'''<br />
|Will return "COURSE_OK" or in case of obstacles on the direct route, "WAYPOINT_SET".<br />
|-<br />
|'''checkDistanceTravelled'''<br />
|May return "GONE_BEYOND_RANGE" or DESIRED_RANGE_ACHIEVED.<br />
|-<br />
|'''checkGroupOddsVersusTarget'''<br />
|Will return "ODDS_GOOD" or "ODDS_BAD".<br />
|-<br />
|'''checkForFullHold'''<br />
|If entity's cargo capacity is reached, will return "HOLD_FULL".<br />
|-<br />
|'''checkForMotherStation'''<br />
|Will return "STATION_FOUND" or "NOTHING_FOUND".<br />
|-<br />
|'''checkForNormalSpace'''<br />
|Will return "NORMAL_SPACE" or "INTERSTELLAR_SPACE".<br />
|-<br />
|'''checkForShips: <role>'''<br />
|Returns with shipsFound_number = #.<br />
|-<br />
|'''checkTargetLegalStatus'''<br />
|Returns "TARGET_CLEAN, "TARGET_MINOR_OFFENDER", "TARGET_OFFENDER", "TARGET_FUGITIVE" or "NO_TARGET".<br />
|}<br />
<br />
<br />
== Targeting ==<br />
<br />
{| border="1" cellpadding="5" style="width:100%<br />
!width="225"|Method<br />
!Description<br />
|-<br />
|'''requestNewTarget'''<br />
|Locates all the ships in range targeting the mother ship, and chooses the nearest/biggest.<br />
|-<br />
|'''setTargetToFoundTarget'''<br />
|Affirms a [[TARGET_FOUND]] by a scanFor- or find-Something-method as the universal target.<br />
|-<br />
|'''setTargetToPrimaryAggressor'''<br />
|Changes to a different enemy target if attacked, unless already very involved in attacking another.<br />
|}<br />
<br />
<br />
== Miscellaneous ==<br />
<br />
{| border="1" cellpadding="5" style="width:100%<br />
!width="225"|Method<br />
!Description<br />
|-<br />
|'''addFuel:(NSString*) fuel_number'''<br />
|Changes player's fuel level by fuel_number LY's, max to 7.0 min to 0.0.<br />
|-<br />
|'''initialiseTurret'''<br />
|Prepares the turret.<br />
|-<br />
|'''rollD:(NSString*) die_number'''<br />
|Uses "dice" for random situation use.<br />
<br />
Example 1, 3 options in someAI.plist:<br />
GLOBAL = {<br />
ENTER = ("rollD: 3"); <br />
"ROLL_1" = (action1);<br />
"ROLL_2" = (action2);<br />
"ROLL_3" = (action3);}<br />
<br />
Example 2, 50% chance in [[script.plist]];<br />
[[conditions]] = ("d100_number lessthan 50");<br />
[[do]] = (action1);<br />
[[else]] = (action2);<br />
is similar in function.<br />
|-<br />
|'''scriptActionOnTarget:(NSString*) action'''<br />
|Will cause immediate reaction to any changes this makes.<br />
|-<br />
|'''setTakeOffFromPlanet'''<br />
|Selects the nearest planet it can find and adds entity 10 km from planet, unless there is no planet to be found.<br />
|}<br />
--------------------------------------------------------------------------------<br />
[[Category:Oolite]]</div>Galileohttps://wiki.alioth.net/index.php?title=OXP_howto_AI&diff=3401OXP howto AI2006-02-19T07:34:44Z<p>Galileo: finished tabulating</p>
<hr />
<div>== Methods for AI ==<br />
Exerpt from the [OoliteAIreference.html]:<br />
<br />
'''AI Script Format'''<br />
<br />
The AI system consists of a [[Stacked AI|stack]] of [[state machine]]s (only the top one of which is active), which respond to game events sent to them as [[Messages|messages]]. They respond by calling a series of [[methods]] which affect the behaviour of the [[entity]] and possibly trigger changes to the '''AI''' by changing the [[state]] or (more drastically) the state machine.<br />
<br />
Each state machine (or AI script) is described in a property list in either [[ASCII]] or [[XML]] format, which can be edited with a text editor or with Property List Editor. The structure is of a dictionary containing each of the machine's possible states referenced by an identifying state name. Each state comprises a dictionary of responses to messages the AI might receive, referenced by the message itself. Each response is an array of methods that will be called when the AI receives that message.<br />
<br />
The AI function calls within a message handler are separated from each other by a comma. If a function takes a parameter the value is separated from the function name by a colon and a space, and both the function name and value are enclosed in double quotes.<br />
<br />
In [[ASCII]] format a simple (two-state) machine looks like this:<br />
{<br />
"STATE_1" = {<br />
"ENTER" = ();<br />
"MESSAGE_A" = ("method1: value", method2, method3);<br />
"MESSAGE_B" = (method4, "setStateTo: STATE_2");<br />
EXIT = ();<br />
UPDATE = ();<br />
};<br />
"STATE_2" = {<br />
"ENTER" = ();<br />
"MESSAGE_A" = ("method1: another_value", method5);<br />
"MESSAGE_B" = (method6, method7, "setStateTo: STATE_1");<br />
EXIT = ();<br />
UPDATE = ();<br />
};<br />
}<br />
The same script in [[twostateXML|XML]].<br />
<br />
<br />
== AI ==<br />
<br />
{| border="1" cellpadding="5"<br />
!Method<br />
!Description<br />
|-<br />
|'''exitAI'''<br />
|Exits current AI.<br />
|-<br />
|'''messageMother:(NSString *)msgString'''<br />
|Sends a AImessage to the mothership/leader of a group.<br />
<br />
Example:<br />
INCOMING_MISSILE = ("messageMother: INCOMING_MISSILE");<br />
The mothership will then behave as if it was targetted by the missile.<br />
|-<br />
|'''pauseAI:(NSString *)intervalString'''<br />
|Sets AI think-time in seconds.<br />
|-<br />
|'''setAITo:(NSString *)aiString'''<br />
|Pauses current AI and switches to anotherAI.plist, this becomes the top AI on the 'AI-stack'.<br />
When anotherAI.plist exits ([[exitAI]]), the previousAI becomes topAI again and AI-state is messaged RESTARTED.<br />
|-<br />
|'''setStateTo: SOMESTATE'''<br />
|Changes the AI state to SOMESTATE.<br />
|-<br />
|'''switchAITo:(NSString *)aiString'''<br />
|Switches entity AI to another *AI.plist, the previous AI will be exited.<br />
|}<br />
<br />
<br />
== AI choices ==<br />
<br />
{| border="1" cellpadding="5"<br />
!Method<br />
!Description<br />
|-<br />
|'''fightOrFleeHostiles'''<br />
|Has entity consider whether to fight, deploy missiles or flee. Returns "FIGHTING", "DEPLOYING_ESCORTS" or "FLEEING".<br />
|-<br />
|'''fightOrFleeMissile'''<br />
|Deals with missiles, launches ECM if available, flees if not, marks as offender if police.<br />
|}<br />
<br />
<br />
== Perform Action ==<br />
<br />
{| border="1" cellpadding="5"<br />
!Method<br />
!Description<br />
|-<br />
|'''acceptDistressMessageFrom:(ShipEntity *)other'''<br />
|Has police either respond to a distress call, or possibly decide it is too busy or too scared.<br />
|-<br />
|'''becomeEnergyBlast'''<br />
|Used in the [[Q bomb]].<br />
|-<br />
|'''becomeExplosion'''<br />
|The entity model is replaced by an explosion.<br />
|-<br />
|'''becomeLargeExplosion'''<br />
|Used at player entity death, not for use in other instances.<br />
|-<br />
|'''dealEnergyDamageWithinDesiredRange'''<br />
|Needs desiredRange to be set first, then deals [[weaponEnergy]] ([[Shipdata.plist]]) damage within this sphere. <br />
|-<br />
|'''deployEscorts'''<br />
|Deploys an escort.<br />
|-<br />
|'''ejectCargo'''<br />
|Ejects cargo.<br />
|-<br />
|'''enterTargetWormhole'''<br />
|Will locate nearest wormhole, and enter it.<br />
|-<br />
|'''escortCheckMother'''<br />
|Returns "ESCORTING" or "NOT_ESCORTING".<br />
|-<br />
|'''fireECM'''<br />
|Used by stations and hermits to engage ECM.<br />
|-<br />
|'''groupAttackTarget'''<br />
|All ships in group will have their targets set to this entity's target and performAttack.<br />
|-<br />
|'''landOnPlanet'''<br />
|Selects the nearest planet it can find, lands (10km from planet) and 'removes' the entity.<br />
|-<br />
|'''Launch..''Some''Ship'''<br />
|Launches a ship fron a dockable entity, various types of this method exist.<br />
* LaunchDefenceShip <br />
* LaunchMiner<br />
* LaunchPolice <br />
* LaunchScavenger<br />
|-<br />
|'''markTargetForFines'''<br />
|Deals out a fine to target.<br />
Example:<br />
"markTargetForFines: 100"<br />
Will fine the target 10Cr. N.b. for commercial transactions "[[awardMoney]] -$" is a more suitable method.<br />
|-<br />
|'''markTargetForOffence:(NSString*) valueString'''<br />
|Has police mark up the criminal record ([[Legal status]]) of target entity.<br />
|-<br />
|'''messageMother:(NSString *)msgString'''<br />
|Sends a AImessage to the mothership/leader of a group.<br />
Example:<br />
INCOMING_MISSILE = ("messageMother: INCOMING_MISSILE");<br />
The mothership will then behave as if it was targetted by the missile.<br />
|-<br />
|'''performAttack'''<br />
|Attacks target.<br />
|-<br />
|'''performCollect'''<br />
|Performs 'collection' of target.<br />
|-<br />
|'''performDocking'''<br />
|NOT YET IMPLEMENTED.<br />
|-<br />
|'''performEscort'''<br />
|Performs escorting.<br />
|-<br />
|''performFaceDestination'''<br />
|Has entity face destination.<br />
|-<br />
|'''performFlee'''<br />
|Sets the caller (AI) to flee from it's primary target at maximum speed. If the caller has a cloacking device, it will be activated.<br />
|-<br />
|'''performFlyToRangeFromDestination'''<br />
|Sets the AI's current state to CONDITION_FLY_RANGE_FROM_DESTINATION. While in this state the entity will attempt to fly to its current destination, stopping at the desired range from it.<br />
|-<br />
|'''performFlyToPlanet'''<br />
|Used in shuttleAI. combined method to target and fly towards planet?<br />
|-<br />
|'''performHold'''<br />
|Performs idleness while tracking a potential target, speed is set to zero. [[frustration]] level is reset.<br />
|-<br />
|'''performHyperSpaceExit'''<br />
|Gets a list of destinations within range, checks if clear of nearby masses, and select one at random. May return "WITCHSPACE UNAVAILABLE" or "WITCHSPACE BLOCKED".<br />
|-<br />
|'''performIdle'''<br />
|Performs idleness. Ship corrects its roll and pitch to 'horizontal' flight, speed is unaffected. [[frustration]] level is reset to zero.<br />
|-<br />
|'''performIntercept'''<br />
|Performs target interception.<br />
|-<br />
|'''performLanding'''<br />
|Same as landOnPlanet, duplicate method or no longer in use?<br />
|-<br />
|'''performMining'''<br />
|Performs mining. (Finds, intercepts and shoots asteroids with [[mining]] laser, if fitted.)<br />
|-<br />
|'''performTumble'''<br />
|Performs random pitch and roll, 'evasive maneuvers'.<br />
|-<br />
|'''setSpeedTo:(NSString *)speedString'''<br />
|Sets desired speed to an absolute value, entity cannot go faster than maxspeed value determined in the [[shipdata.plist]]. If speed is above maxspeed, entity will use fuelinjectors if available. <br />
|-<br />
|'''setSpeedFactorTo:(NSString *)speedString'''<br />
|Sets the desired speed to a percentage of maxspeed (0->1=0%->100%). If speedfactor is set above 100%, entity will use fuelinjectors if available.<br />
|-<br />
|'''setUpEscorts'''<br />
|Useful to quickly establish (by name and number the [[shipdata.plist]] prescribed) escorts, when a ship is introduced to a system.<br />
|-<br />
|'''suggestEscort'''<br />
|Has an escort seek employment and either gets accepted or rejected by the "mother".<br />
|-<br />
|'''switchLightsOff'''<br />
|If an entity has lights (or flashers), this command will turn them off. Default state is on. (See [[shipdata.plist]])<br />
|-<br />
|'''switchLightsOn'''<br />
|Will turn flashers back on.<br />
|-<br />
|'''wormholeEntireGroup'''<br />
|Wormholes ships in this group.<br />
|-<br />
|'''wormholeEscorts'''<br />
|Wormholes official escorts.<br />
|-<br />
|'''wormholeGroup'''<br />
|Wormholes ships in group of which this is a leader.<br />
|}<br />
<br />
<br />
== Navigation ==<br />
<br />
{| border="1" cellpadding="5"<br />
!Method<br />
!Description<br />
|-<br />
|'''getWitchspaceEntryCoordinates'''<br />
|Calculates coordinates from the nearest station it can find, or just fly 10s forward.<br />
|-<br />
|'''recallDockingInstructions'''<br />
|...<br />
|-<br />
|'''requestDockingCoordinates'''<br />
|Requests coordinates from the nearest station it can find (which may be a Rock hermit).<br />
|-<br />
|'''setCoordinates:(NSString *)system_x_y_z'''<br />
|Sets destination coords, see '''addShipsAt'''.<br />
|-<br />
|'''setCourseToPlanet'''<br />
|Selects the nearest planet it can find, reaching desired range 50 km from the planet.<br />
|-<br />
|'''setCourseToWitchpoint'''<br />
|Sets destination coords to Witchpoint area.<br />
|-<br />
|'''setDesiredRangeTo:(NSString *)rangeString'''<br />
|Some methods (such as scanForNearestMerchantmen, checkCourseToDestination, checkDistanceTravelled, etc) require a "desired range" parameter to be set before they can be used.<br />
<br />
This method is used to set the desired range. There is only one value for desired range within an instance of the AI. The value of desired range is modified internally by AI methods such as fightOrFleeMissile, setCourseToWitchpoint, and setPlanetPatrolCoordinates.<br />
|-<br />
|'''setDestinationFromCoordinates'''<br />
|Enables the plotting of manual waypoints.<br />
|-<br />
|'''setDestinationToCurrentLocation'''<br />
|This method sets the destination of the current entity to its current location plus a random offset of up to 0.5 metres in the X, Y, and Z coordinates. This can be used to make a ship idle in a small area of space without being completely still.<br />
|-<br />
|'''setDestinationToDockingAbort'''<br />
|DockingAbort coordinates... X distance from the dockingslit?<br />
|-<br />
|'''setDestinationToStationBeacon'''<br />
|Gets station beacon position.<br />
|-<br />
|'''setDestinationToTarget'''<br />
|Sets destination to target coords.<br />
|-<br />
|'''setDestinationToWitchpoint'''<br />
|Sets destination coordinates to WitchspaceExitPosition.<br />
|-<br />
|'''setDestinationWithinTarget'''<br />
|Handy for ramming and racing.<br />
|-<br />
|'''setPlanetPatrolCoordinates'''<br />
|Check we've arrived near the last given coordinates.<br />
|-<br />
|'''setSunSkimEndCoordinates'''<br />
|...<br />
|-<br />
|'''setSunSkimExitCoordinates'''<br />
|...<br />
|-<br />
|'''setSunSkimStartCoordinates'''<br />
|...<br />
|}<br />
<br />
<br />
== Communication ==<br />
<br />
{| border="1" cellpadding="5"<br />
!Method<br />
!Description<br />
|-<br />
|'''broadcastDistressMessage'''<br />
|Locates all the stations, bounty hunters and police ships in range and tells them that you are under attack.<br />
|-<br />
|'''commsMessage:(NSString *)valueString'''<br />
|Broadcasts a general message to player.<br />
Example:<br />
"sendCommsMessage: [thargoid_curses]"<br />
|-<br />
|'''patrolReportIn'''<br />
|...<br />
|-<br />
|'''sendTargetCommsMessage:(NSString*) message'''<br />
|Sends any message to the established (found) target.<br />
<br />
Example:<br />
"sendTargetCommsMessage: Listen to me!!"<br />
|}<br />
<br />
== Locating entities ==<br />
<br />
All these methods require a range to be set by setDesiredRange or by <scanner_range> in [[shipdata.plist]], all will return the message TARGET_FOUND or NOTHING_FOUND. The calling entity remembers the found target, but it does not become the current (universal) target. It can be made the current target by responding to the TARGET_FOUND message with a call to setTargetToFoundTarget.<br />
<br />
<br />
{| border="1" cellpadding="5"<br />
!Method<br />
!Description<br />
|-<br />
|'''findNearestPlanet'''<br />
|Will scan for planetentity.<br />
|-<br />
|'''scanForFormationLeader'''<br />
|Locates the nearest suitable formation leader in range.<br />
|-<br />
|'''scanForHostiles'''<br />
|Locates all the ships in range targeting the receiver and chooses the nearest.<br />
|-<br />
|'''scanForLoot'''<br />
|Locates the nearest debris in range.<br />
|-<br />
|'''scanForNearestMerchantmen'''<br />
|Locates the nearest merchantman in range.<br />
|-<br />
|'''scanForNearestShipWithRole:(NSString*) scanRole'''<br />
|Locates all the ships in range and chooses the nearest.<br />
|-<br />
|'''scanForNonThargoid'''<br />
|Locates all the non thargoid ships in range and chooses the nearest.<br />
|-<br />
|'''scanForOffenders'''<br />
|Locates all the ships in range and compares their legal status or bounty, and chooses the worst offender.<br />
|-<br />
|'''scanForRandomLoot'''<br />
|Locates the all debris in range and chooses a piece at random from the first sixteen found.<br />
|-<br />
|'''scanForRandomMerchantmen'''<br />
|Locates one of the merchantman in range.<br />
|-<br />
|'''scanForRocks'''<br />
|Locates the all boulders and asteroids in range and selects one of up to 16. Returns "TARGET_FOUND" or"NOTHING_FOUND".<br />
|-<br />
|'''scanForThargoid'''<br />
|Locates all the thargoid warships in range and chooses the nearest.<br />
|-<br />
|'''checkCourseToDestination'''<br />
|Will return "COURSE_OK" or in case of obstacles on the direct route, "WAYPOINT_SET".<br />
|-<br />
|'''checkDistanceTravelled'''<br />
|May return "GONE_BEYOND_RANGE" or DESIRED_RANGE_ACHIEVED.<br />
|-<br />
|'''checkGroupOddsVersusTarget'''<br />
|Will return "ODDS_GOOD" or "ODDS_BAD".<br />
|-<br />
|'''checkForFullHold'''<br />
|If entity's cargo capacity is reached, will return "HOLD_FULL".<br />
|-<br />
|'''checkForMotherStation'''<br />
|Will return "STATION_FOUND" or "NOTHING_FOUND".<br />
|-<br />
|'''checkForNormalSpace'''<br />
|Will return "NORMAL_SPACE" or "INTERSTELLAR_SPACE".<br />
|-<br />
|'''checkForShips: <role>'''<br />
|Returns with shipsFound_number = #.<br />
|-<br />
|'''checkTargetLegalStatus'''<br />
|Returns "TARGET_CLEAN, "TARGET_MINOR_OFFENDER", "TARGET_OFFENDER", "TARGET_FUGITIVE" or "NO_TARGET".<br />
|}<br />
<br />
<br />
== Targeting ==<br />
<br />
{| border="1" cellpadding="5"<br />
!Method<br />
!Description<br />
|-<br />
|'''requestNewTarget'''<br />
|Locates all the ships in range targeting the mother ship, and chooses the nearest/biggest.<br />
|-<br />
|'''setTargetToFoundTarget'''<br />
|Affirms a [[TARGET_FOUND]] by a scanFor- or find-Something-method as the universal target.<br />
|-<br />
|'''setTargetToPrimaryAggressor'''<br />
|Changes to a different enemy target if attacked, unless already very involved in attacking another.<br />
|}<br />
<br />
<br />
== Miscellaneous ==<br />
<br />
{| border="1" cellpadding="5"<br />
!Method<br />
!Description<br />
|-<br />
|'''addFuel:(NSString*) fuel_number'''<br />
|Changes player's fuel level by fuel_number LY's, max to 7.0 min to 0.0.<br />
|-<br />
|'''initialiseTurret'''<br />
|Prepares the turret.<br />
|-<br />
|'''rollD:(NSString*) die_number'''<br />
|Uses "dice" for random situation use.<br />
<br />
Example 1, 3 options in someAI.plist:<br />
GLOBAL = {<br />
ENTER = ("rollD: 3"); <br />
"ROLL_1" = (action1);<br />
"ROLL_2" = (action2);<br />
"ROLL_3" = (action3);}<br />
<br />
Example 2, 50% chance in [[script.plist]];<br />
[[conditions]] = ("d100_number lessthan 50");<br />
[[do]] = (action1);<br />
[[else]] = (action2);<br />
is similar in function.<br />
|-<br />
|'''scriptActionOnTarget:(NSString*) action'''<br />
|Will cause immediate reaction to any changes this makes.<br />
|-<br />
|'''setTakeOffFromPlanet'''<br />
|Selects the nearest planet it can find and adds entity 10 km from planet, unless there is no planet to be found.<br />
|}<br />
--------------------------------------------------------------------------------<br />
[[Category:Oolite]]</div>Galileohttps://wiki.alioth.net/index.php?title=OXP_howto_AI&diff=3400OXP howto AI2006-02-19T07:11:01Z<p>Galileo: started tabulating entries</p>
<hr />
<div>== Methods for AI ==<br />
Exerpt from the [OoliteAIreference.html]:<br />
<br />
'''AI Script Format'''<br />
<br />
The AI system consists of a [[Stacked AI|stack]] of [[state machine]]s (only the top one of which is active), which respond to game events sent to them as [[Messages|messages]]. They respond by calling a series of [[methods]] which affect the behaviour of the [[entity]] and possibly trigger changes to the '''AI''' by changing the [[state]] or (more drastically) the state machine.<br />
<br />
Each state machine (or AI script) is described in a property list in either [[ASCII]] or [[XML]] format, which can be edited with a text editor or with Property List Editor. The structure is of a dictionary containing each of the machine's possible states referenced by an identifying state name. Each state comprises a dictionary of responses to messages the AI might receive, referenced by the message itself. Each response is an array of methods that will be called when the AI receives that message.<br />
<br />
The AI function calls within a message handler are separated from each other by a comma. If a function takes a parameter the value is separated from the function name by a colon and a space, and both the function name and value are enclosed in double quotes.<br />
<br />
In [[ASCII]] format a simple (two-state) machine looks like this:<br />
{<br />
"STATE_1" = {<br />
"ENTER" = ();<br />
"MESSAGE_A" = ("method1: value", method2, method3);<br />
"MESSAGE_B" = (method4, "setStateTo: STATE_2");<br />
EXIT = ();<br />
UPDATE = ();<br />
};<br />
"STATE_2" = {<br />
"ENTER" = ();<br />
"MESSAGE_A" = ("method1: another_value", method5);<br />
"MESSAGE_B" = (method6, method7, "setStateTo: STATE_1");<br />
EXIT = ();<br />
UPDATE = ();<br />
};<br />
}<br />
The same script in [[twostateXML|XML]].<br />
<br />
== AI ==<br />
{| border="1" cellpadding="5"<br />
!Method<br />
!Description<br />
|-<br />
|'''exitAI'''<br />
|Exits current AI.<br />
|-<br />
|'''messageMother:(NSString *)msgString'''<br />
|Sends a AImessage to the mothership/leader of a group.<br />
<br />
Example:<br />
INCOMING_MISSILE = ("messageMother: INCOMING_MISSILE");<br />
The mothership will then behave as if it was targetted by the missile.<br />
|-<br />
|'''pauseAI:(NSString *)intervalString'''<br />
|Sets AI think-time in seconds.<br />
|-<br />
|'''setAITo:(NSString *)aiString'''<br />
|Pauses current AI and switches to anotherAI.plist, this becomes the top AI on the 'AI-stack'.<br />
When anotherAI.plist exits ([[exitAI]]), the previousAI becomes topAI again and AI-state is messaged RESTARTED.<br />
|-<br />
|'''setStateTo: SOMESTATE'''<br />
|Changes the AI state to SOMESTATE.<br />
|-<br />
|'''switchAITo:(NSString *)aiString'''<br />
|Switches entity AI to another *AI.plist, the previous AI will be exited.<br />
|}<br />
<br />
== AI choices ==<br />
{| border="1" cellpadding="5"<br />
!Method<br />
!Description<br />
|-<br />
|'''fightOrFleeHostiles'''<br />
|Has entity consider whether to fight, deploy missiles or flee. Returns "FIGHTING", "DEPLOYING_ESCORTS" or "FLEEING".<br />
|-<br />
|'''fightOrFleeMissile'''<br />
|Deals with missiles, launches ECM if available, flees if not, marks as offender if police.<br />
|}<br />
<br />
== Perform Action ==<br />
<br />
{| border="1" cellpadding="5"<br />
!Method<br />
!Description<br />
|-<br />
|'''acceptDistressMessageFrom:(ShipEntity *)other'''<br />
|Has police either respond to a distress call, or possibly decide it is too busy or too scared.<br />
|-<br />
|'''becomeEnergyBlast'''<br />
|Used in the [[Q bomb]].<br />
|-<br />
|'''becomeExplosion'''<br />
|The entity model is replaced by an explosion.<br />
|-<br />
|'''becomeLargeExplosion'''<br />
|Used at player entity death, not for use in other instances.<br />
|-<br />
|'''dealEnergyDamageWithinDesiredRange'''<br />
|Needs desiredRange to be set first, then deals [[weaponEnergy]] ([[Shipdata.plist]]) damage within this sphere. <br />
|-<br />
|'''deployEscorts'''<br />
|Deploys an escort.<br />
|-<br />
|'''ejectCargo'''<br />
|Ejects cargo.<br />
|-<br />
|'''enterTargetWormhole'''<br />
|Will locate nearest wormhole, and enter it.<br />
|-<br />
|'''escortCheckMother'''<br />
|Returns "ESCORTING" or "NOT_ESCORTING".<br />
|-<br />
|'''fireECM'''<br />
|Used by stations and hermits to engage ECM.<br />
|-<br />
|'''groupAttackTarget'''<br />
|All ships in group will have their targets set to this entity's target and performAttack.<br />
|-<br />
|'''landOnPlanet'''<br />
|Selects the nearest planet it can find, lands (10km from planet) and 'removes' the entity.<br />
|-<br />
|'''Launch..''Some''Ship'''<br />
|Launches a ship fron a dockable entity, various types of this method exist.<br />
* LaunchDefenceShip <br />
* LaunchMiner<br />
* LaunchPolice <br />
* LaunchScavenger<br />
|-<br />
|'''markTargetForFines'''<br />
|Deals out a fine to target.<br />
Example:<br />
"markTargetForFines: 100"<br />
Will fine the target 10Cr. N.b. for commercial transactions "[[awardMoney]] -$" is a more suitable method.<br />
|-<br />
|'''markTargetForOffence:(NSString*) valueString'''<br />
|Has police mark up the criminal record ([[Legal status]]) of target entity.<br />
|-<br />
|'''messageMother:(NSString *)msgString'''<br />
|Sends a AImessage to the mothership/leader of a group.<br />
Example:<br />
INCOMING_MISSILE = ("messageMother: INCOMING_MISSILE");<br />
The mothership will then behave as if it was targetted by the missile.<br />
|-<br />
|'''performAttack'''<br />
|Attacks target.<br />
|-<br />
|'''performCollect'''<br />
|Performs 'collection' of target.<br />
|-<br />
|'''performDocking'''<br />
|NOT YET IMPLEMENTED.<br />
|-<br />
|'''performEscort'''<br />
|Performs escorting.<br />
|-<br />
|''performFaceDestination'''<br />
|Has entity face destination.<br />
|-<br />
|'''performFlee'''<br />
|Sets the caller (AI) to flee from it's primary target at maximum speed. If the caller has a cloacking device, it will be activated.<br />
|-<br />
|'''performFlyToRangeFromDestination'''<br />
|Sets the AI's current state to CONDITION_FLY_RANGE_FROM_DESTINATION. While in this state the entity will attempt to fly to its current destination, stopping at the desired range from it.<br />
|-<br />
|'''performFlyToPlanet'''<br />
|Used in shuttleAI. combined method to target and fly towards planet?<br />
|-<br />
|'''performHold'''<br />
|Performs idleness while tracking a potential target, speed is set to zero. [[frustration]] level is reset.<br />
|-<br />
|'''performHyperSpaceExit'''<br />
|Gets a list of destinations within range, checks if clear of nearby masses, and select one at random. May return "WITCHSPACE UNAVAILABLE" or "WITCHSPACE BLOCKED".<br />
|-<br />
|'''performIdle'''<br />
|Performs idleness. Ship corrects its roll and pitch to 'horizontal' flight, speed is unaffected. [[frustration]] level is reset to zero.<br />
|-<br />
|'''performIntercept'''<br />
|Performs target interception.<br />
|-<br />
|'''performLanding'''<br />
|Same as landOnPlanet, duplicate method or no longer in use?<br />
|-<br />
|'''performMining'''<br />
|Performs mining. (Finds, intercepts and shoots asteroids with [[mining]] laser, if fitted.)<br />
|-<br />
|'''performTumble'''<br />
|Performs random pitch and roll, 'evasive maneuvers'.<br />
|-<br />
|'''setSpeedTo:(NSString *)speedString'''<br />
|Sets desired speed to an absolute value, entity cannot go faster than maxspeed value determined in the [[shipdata.plist]]. If speed is above maxspeed, entity will use fuelinjectors if available. <br />
|-<br />
|'''setSpeedFactorTo:(NSString *)speedString'''<br />
|Sets the desired speed to a percentage of maxspeed (0->1=0%->100%). If speedfactor is set above 100%, entity will use fuelinjectors if available.<br />
|-<br />
|'''setUpEscorts'''<br />
|Useful to quickly establish (by name and number the [[shipdata.plist]] prescribed) escorts, when a ship is introduced to a system.<br />
|-<br />
|'''suggestEscort'''<br />
|Has an escort seek employment and either gets accepted or rejected by the "mother".<br />
|-<br />
|'''switchLightsOff'''<br />
|If an entity has lights (or flashers), this command will turn them off. Default state is on. (See [[shipdata.plist]])<br />
|-<br />
|'''switchLightsOn'''<br />
|Will turn flashers back on.<br />
|-<br />
|'''wormholeEntireGroup'''<br />
|Wormholes ships in this group.<br />
|-<br />
|'''wormholeEscorts'''<br />
|Wormholes official escorts.<br />
|-<br />
|'''wormholeGroup'''<br />
|Wormholes ships in group of which this is a leader.<br />
|}<br />
<br />
<br />
== Navigation ==<br />
<br />
=== getWitchspaceEntryCoordinates ===<br />
Calculates coordinates from the nearest station it can find, or just fly 10s forward.<br />
<br />
=== recallDockingInstructions ===<br />
...<br />
<br />
=== requestDockingCoordinates ===<br />
Requests coordinates from the nearest station it can find (which may be a Rock hermit).<br />
<br />
=== setCoordinates:(NSString *)system_x_y_z; ===<br />
Sets PWM destination coords.<br />
<br />
=== setCourseToPlanet ===<br />
Selects the nearest planet it can find, reaching desired range 50 km from the planet.<br />
<br />
=== setCourseToWitchpoint ===<br />
Sets destination coords to Witchpoint area.<br />
<br />
=== setDesiredRangeTo:(NSString *)rangeString; ===<br />
Some methods (such as scanForNearestMerchantmen, checkCourseToDestination, checkDistanceTravelled, etc) require a "desired range" parameter to be set before they can be used.<br />
<br />
This method is used to set the desired range. There is only one value for desired range within an instance of the AI. The value of desired range is modified internally by AI methods such as fightOrFleeMissile, setCourseToWitchpoint, and setPlanetPatrolCoordinates.<br />
<br />
=== setDestinationFromCoordinates ===<br />
Enables the plotting of manual waypoints.<br />
<br />
=== setDestinationToCurrentLocation ===<br />
This method sets the destination of the current entity to its current location plus a random offset of up to 0.5 metres in the X, Y, and Z coordinates. This can be used to make a ship idle in a small area of space without being completely still.<br />
<br />
=== setDestinationToDockingAbort ===<br />
DockingAbort coordinates... X distance from the dockingslit?<br />
<br />
=== setDestinationToStationBeacon ===<br />
Gets station beacon position.<br />
<br />
=== setDestinationToTarget ===<br />
Sets destination to target coords.<br />
<br />
=== setDestinationToWitchpoint ===<br />
Sets destination coords to WitchspaceExitPosition.<br />
<br />
=== setDestinationWithinTarget ===<br />
Handy for ramming and racing.<br />
<br />
=== setPlanetPatrolCoordinates ===<br />
Check we've arrived near the last given coordinates.<br />
<br />
=== setSunSkimEndCoordinates ===<br />
...<br />
<br />
=== setSunSkimExitCoordinates ===<br />
...<br />
<br />
=== setSunSkimStartCoordinates ===<br />
...<br />
<br />
<br />
== Communication ==<br />
<br />
=== broadcastDistressMessage ===<br />
Locates all the stations, bounty hunters and police ships in range and tells them that you are under attack.<br />
<br />
=== commsMessage:(NSString *)valueString; ===<br />
Broadcasts a general message to player.<br />
Example:<br />
"sendCommsMessage: [thargoid_curses]"<br />
<br />
=== patrolReportIn ===<br />
...<br />
<br />
=== sendTargetCommsMessage:(NSString*) message; ===<br />
Sends any message to the established (found) target.<br />
<br />
Example:<br />
"sendTargetCommsMessage: Listen to me!!"<br />
<br />
== Locating stuff ==<br />
All these methods require a range to be set by setDesiredRange or by <scanner_range> in [[shipdata.plist]], all will return the message TARGET_FOUND or NOTHING_FOUND. <br />
The calling entity remembers the found target, but it does not become the current (universal) target. It can be made the current target by responding to the TARGET_FOUND message with a call to setTargetToFoundTarget.<br />
<br />
=== find.. === <br />
==== findNearestPlanet ====<br />
(PlanetEntity *)<br />
Will scan for planetentity.<br />
<br />
=== scanFor.. ===<br />
==== scanForFormationLeader ====<br />
Locates the nearest suitable formation leader in range.<br />
<br />
==== scanForHostiles ====<br />
Locates all the ships in range targetting the receiver and chooses the nearest.<br />
<br />
==== scanForLoot ====<br />
Locates the nearest debris in range.<br />
<br />
==== scanForNearestMerchantmen ====<br />
Locates the nearest merchantman in range<br />
<br />
==== scanForNearestShipWithRole:(NSString*) scanRole; ====<br />
Locates all the ships in range and chooses the nearest.<br />
<br />
==== scanForNonThargoid ====<br />
Locates all the non thargoid ships in range and chooses the nearest.<br />
<br />
==== scanForOffenders ====<br />
Locates all the ships in range and compares their legal status or bounty, and chooses the worst offender.<br />
<br />
==== scanForRandomLoot ====<br />
Locates the all debris in range and chooses a piece at random from the first sixteen found.<br />
<br />
==== scanForRandomMerchantmen ====<br />
Locates one of the merchantman in range.<br />
<br />
==== scanForRocks ====<br />
Locates the all boulders and asteroids in range and selects one of up to 16. Returns "TARGET_FOUND" or"NOTHING_FOUND".<br />
<br />
==== scanForThargoid ====<br />
Locates all the thargoid warships in range and chooses the nearest.<br />
<br />
=== CheckFor.. ===<br />
"Check for.." methods are a bit more variable in their output messages.<br />
<br />
==== checkCourseToDestination ====<br />
Will return "COURSE_OK" or in case of obstacles on the direct route, "WAYPOINT_SET".<br />
<br />
==== checkDistanceTravelled ====<br />
May return "GONE_BEYOND_RANGE" or DESIRED_RANGE_ACHIEVED.<br />
<br />
==== checkGroupOddsVersusTarget ====<br />
Will return "ODDS_GOOD" or "ODDS_BAD".<br />
<br />
==== checkForFullHold ====<br />
If entity's cargo capacity is reached, will return "HOLD_FULL".<br />
<br />
==== checkForMotherStation ====<br />
Will return "STATION_FOUND" or "NOTHING_FOUND".<br />
<br />
==== checkForNormalSpace ====<br />
Will return "NORMAL_SPACE" or "INTERSTELLAR_SPACE".<br />
<br />
==== checkForShips: type ====<br />
Returns with shipsFound_number = #.<br />
<br />
==== checkTargetLegalStatus ====<br />
Returns "TARGET_CLEAN, "TARGET_MINOR_OFFENDER", "TARGET_OFFENDER", "TARGET_FUGITIVE" or "NO_TARGET".<br />
<br />
== Targeting ==<br />
<br />
=== requestNewTarget ===<br />
Locates all the ships in range targeting the mother ship, and chooses the nearest/biggest.<br />
<br />
=== setTargetToFoundTarget ===<br />
Affirms a [[TARGET_FOUND]] by a scanFor- or find-Something-method as the universal target.<br />
<br />
=== setTargetToPrimaryAggressor ===<br />
Changes to a different enemy target if attacked, unless already very involved in attacking another.<br />
<br />
== Miscellaneous ==<br />
<br />
=== addFuel:(NSString*) fuel_number; ===<br />
Changes fuel level (only of player entity?) by fuel_numer LY's, max to 7.0 min to 0.0.<br />
<br />
=== initialiseTurret ===<br />
Prepares the turret.<br />
<br />
=== rollD:(NSString*) die_number; ===<br />
Uses "dice" for random situation use.<br />
<br />
Example1, 3 options in SomeAI.plist:<br />
GLOBAL = {<br />
ENTER = ("rollD: 3"); <br />
"ROLL_1" = (action1);<br />
"ROLL_2" = (action2);<br />
"ROLL_3" = (action3);}<br />
<br />
Example2, 50% chance in [[script.plist]];<br />
[[conditions]] = ("d100_number lessthan 50");<br />
[[do]] = (action1);<br />
[[else]] = (action2);<br />
is similar in function.<br />
<br />
=== scriptActionOnTarget:(NSString*) action; ===<br />
Will cause immediate reaction to any changes this makes.<br />
<br />
=== setTakeOffFromPlanet ===<br />
Selects the nearest planet it can find and adds entity 10 km from planet, unless there is no planet to be found.<br />
<br />
<br />
{{stub}}<br />
--------------------------------------------------------------------------------<br />
[[Category:Oolite]]</div>Galileohttps://wiki.alioth.net/index.php?title=Shipdata_structure&diff=3399Shipdata structure2006-02-19T06:45:45Z<p>Galileo: </p>
<hr />
<div>Every entity is defined by a title-key, followed by a <dict>ionary of the object's properties.<br />
Do not use '-'(minus symbol) in the entity title.<br />
<br />
:The structure of the shipdata.plist is as follows:<br />
<br />
''***usual XML-Header info***''<br />
<plist><br />
<dict><br />
<key>my_object</key><br />
<dict><br />
''(all relevant property entries)''<br />
</dict><br />
<nowiki> <!-- between these everything will be ignored, convenient for selfcomments --> </nowiki><br />
<key>my_second_object</key><br />
<dict><br />
''(all relevant property entries)''<br />
</dict><br />
</dict><br />
</plist><br />
<br />
'''[[shipdata.plist|BACK]]'''</div>Galileohttps://wiki.alioth.net/index.php?title=OXP_howto_AI&diff=3398OXP howto AI2006-02-19T06:44:31Z<p>Galileo: /* Targetting */</p>
<hr />
<div>== Methods for AI ==<br />
Exerpt from the [OoliteAIreference.html]:<br />
<br />
'''AI Script Format'''<br />
<br />
The AI system consists of a [[Stacked AI|stack]] of [[state machine]]s (only the top one of which is active), which respond to game events sent to them as [[Messages|messages]]. They respond by calling a series of [[methods]] which affect the behaviour of the [[entity]] and possibly trigger changes to the '''AI''' by changing the [[state]] or (more drastically) the state machine.<br />
<br />
Each state machine (or AI script) is described in a property list in either [[ASCII]] or [[XML]] format, which can be edited with a text editor or with Property List Editor. The structure is of a dictionary containing each of the machine's possible states referenced by an identifying state name. Each state comprises a dictionary of responses to messages the AI might receive, referenced by the message itself. Each response is an array of methods that will be called when the AI receives that message.<br />
<br />
The AI function calls within a message handler are separated from each other by a comma. If a function takes a parameter the value is separated from the function name by a colon and a space, and both the function name and value are enclosed in double quotes.<br />
<br />
In [[ASCII]] format a simple (two-state) machine looks like this:<br />
{<br />
"STATE_1" = {<br />
"ENTER" = ();<br />
"MESSAGE_A" = ("method1: value", method2, method3);<br />
"MESSAGE_B" = (method4, "setStateTo: STATE_2");<br />
EXIT = ();<br />
UPDATE = ();<br />
};<br />
"STATE_2" = {<br />
"ENTER" = ();<br />
"MESSAGE_A" = ("method1: another_value", method5);<br />
"MESSAGE_B" = (method6, method7, "setStateTo: STATE_1");<br />
EXIT = ();<br />
UPDATE = ();<br />
};<br />
}<br />
The same script in [[twostateXML|XML]].<br />
<br />
== AI ==<br />
=== exitAI ===<br />
Exits current AI.<br />
<br />
=== messageMother:(NSString *)msgString;===<br />
Sends a AImessage to the mothership/leader of a group.<br />
<br />
Example:<br />
INCOMING_MISSILE = ("messageMother: INCOMING_MISSILE");<br />
The mothership will then behave as if it was targetted by the missile.<br />
<br />
=== pauseAI:(NSString *)intervalString; ===<br />
Sets AI think-time in seconds.<br />
<br />
=== setAITo:(NSString *)aiString; ===<br />
Pauses current AI and switches to anotherAI.plist, this becomes the top AI on the 'AI-stack'.<br />
When anotherAI.plist exits ([[exitAI]]), the previousAI becomes topAI again and AI-state is messaged RESTARTED.<br />
<br />
=== setStateTo: SOMESTATE ===<br />
Changes the AI state to SOMESTATE.<br />
<br />
=== switchAITo:(NSString *)aiString; ===<br />
Switches entity AI to another *AI.plist, the previous AI will be exited.<br />
<br />
== AI choices ==<br />
=== fightOrFleeHostiles ===<br />
Has entity consider whether to fight, deploy missiles or flee. Returns "FIGHTING", "DEPLOYING_ESCORTS" or "FLEEING".<br />
<br />
=== fightOrFleeMissile ===<br />
Deals with missiles, launches ECM if available, flees if not, marks as offender if police.<br />
<br />
<br />
== Perform Action ==<br />
=== acceptDistressMessageFrom:(ShipEntity *)other; ===<br />
Has police either respond to a distress call, or possibly decide it is too busy or too scared.<br />
<br />
=== becomeEnergyBlast ===<br />
Used in the [[Q bomb]].<br />
<br />
=== becomeExplosion ===<br />
The entity model is replaced by an explosion.<br />
<br />
=== becomeLargeExplosion ===<br />
Used at player entity death, not for use in other instances.<br />
<br />
=== dealEnergyDamageWithinDesiredRange ===<br />
Needs desiredRange to be set first, then deals [[weaponEnergy]] ([[Shipdata.plist]]) damage within this sphere. <br />
<br />
=== deployEscorts ===<br />
Deploys an escort.<br />
<br />
=== ejectCargo ===<br />
Ejects cargo.<br />
<br />
=== enterTargetWormhole ===<br />
Will locate nearest wormhole, and enter it.<br />
<br />
=== escortCheckMother ===<br />
Returns "ESCORTING" or "NOT_ESCORTING".<br />
<br />
=== fireECM ===<br />
Used by stations and hermits to engage ECM.<br />
<br />
=== groupAttackTarget ===<br />
All ships in group will have their targets set to this entity's target and performAttack.<br />
<br />
=== landOnPlanet ===<br />
Selects the nearest planet it can find, lands (10km from planet) and 'removes' the entity.<br />
<br />
=== Launch..''Some''Ship ===<br />
Launches a ship fron a dockable entity, various types of this method exist.<br />
*LaunchDefenceShip <br />
*LaunchMiner<br />
*LaunchPolice <br />
*LaunchScavenger<br />
Probably will work for other [[roles]] too?<br />
<br />
=== markTargetForFines ===<br />
Deals out a fine to target.<br />
Example:<br />
"markTargetForFines 100"<br />
Will fine the target 10Cr. N.b. for commercial transactions "[[awardMoney]] -$" is a more suitable method.<br />
<br />
=== markTargetForOffence:(NSString*) valueString; ===<br />
Has police mark up the criminal record ([[Legal status]]) of target entity.<br />
<br />
=== messageMother:(NSString *)msgString; ===<br />
Sends a AImessage to the mothership/leader of a group.<br />
Example:<br />
INCOMING_MISSILE = ("messageMother: INCOMING_MISSILE");<br />
The mothership will then behave as if it was targetted by the missile.<br />
<br />
=== performAttack ===<br />
Attacks target.<br />
<br />
=== performCollect ===<br />
Performs 'collection' of target.<br />
<br />
=== performDocking ===<br />
NOT YET IMPLEMENTED.<br />
<br />
=== performEscort ===<br />
Performs escorting.<br />
<br />
=== performFaceDestination ===<br />
Has entity face destination.<br />
<br />
=== performFlee ===<br />
Sets the caller (AI) to flee from it's primary target at maximum speed. If the caller has a cloacking device, it will be activated.<br />
<br />
=== performFlyToRangeFromDestination ===<br />
Sets the AI's current state to CONDITION_FLY_RANGE_FROM_DESTINATION.<br />
While in this state the entity will attempt to fly to its current destination, stopping at the desired range from it.<br />
<br />
=== performFlyToPlanet ===<br />
Used in shuttleAI. combined method to target and fly towards planet?<br />
<br />
=== performHold ===<br />
Performs idleness while tracking a potential target, speed is set to zero. [[frustration]] level is reset.<br />
<br />
=== performHyperSpaceExit ===<br />
Gets a list of destinations within range, checks if clear of nearby masses, and select one at random. May return "WITCHSPACE UNAVAILABLE" or "WITCHSPACE BLOCKED".<br />
<br />
=== performIdle ===<br />
Performs idleness. Ship corrects its roll and pitch to 'horizontal' flight, speed is unaffected. [[frustration]] level is reset to zero.<br />
<br />
=== performIntercept ===<br />
Performs target interception.<br />
<br />
=== performLanding ===<br />
Same as landOnPlanet, duplicate method or no longer in use?<br />
<br />
=== performMining ===<br />
Performs mining. (Finds, intercepts and shoots asteroids with [[mining]] laser, if fitted.)<br />
<br />
=== performTumble ===<br />
Performs random pitch and roll, 'evasive maneuvers'.<br />
<br />
=== setSpeedTo:(NSString *)speedString; ===<br />
Sets desired speed to an absolute value, entity cannot go faster than maxspeed value determined in the [[shipdata.plist]]. If speed is above maxspeed, entity will use fuelinjectors if available. <br />
<br />
=== setSpeedFactorTo:(NSString *)speedString; ===<br />
Sets the desired speed to a percentage of maxspeed (0->1=0%->100%). If speedfactor is set above 100%, entity will use fuelinjectors if available.<br />
<br />
=== setUpEscorts ===<br />
Useful to quickly establish (by name and number the [[shipdata.plist]] prescribed) escorts, when a ship is introduced to a system.<br />
<br />
=== suggestEscort ===<br />
Has an escort seek employment and either gets accepted or rejected by the "mother".<br />
<br />
=== switchLightsOff ===<br />
If an entity has lights (or flashers), this command will turn them off.<br />
Default state is on. (See [[shipdata.plist]])<br />
<br />
=== switchLightsOn ===<br />
Will turn flashers back on.<br />
<br />
=== wormholeEntireGroup ===<br />
Wormholes ships in this group.<br />
<br />
=== wormholeEscorts ===<br />
Wormholes official escorts.<br />
<br />
=== wormholeGroup ===<br />
Wormholes ships in group of which this is a leader.<br />
<br />
== Navigation ==<br />
<br />
=== getWitchspaceEntryCoordinates ===<br />
Calculates coordinates from the nearest station it can find, or just fly 10s forward.<br />
<br />
=== recallDockingInstructions ===<br />
...<br />
<br />
=== requestDockingCoordinates ===<br />
Requests coordinates from the nearest station it can find (which may be a Rock hermit).<br />
<br />
=== setCoordinates:(NSString *)system_x_y_z; ===<br />
Sets PWM destination coords.<br />
<br />
=== setCourseToPlanet ===<br />
Selects the nearest planet it can find, reaching desired range 50 km from the planet.<br />
<br />
=== setCourseToWitchpoint ===<br />
Sets destination coords to Witchpoint area.<br />
<br />
=== setDesiredRangeTo:(NSString *)rangeString; ===<br />
Some methods (such as scanForNearestMerchantmen, checkCourseToDestination, checkDistanceTravelled, etc) require a "desired range" parameter to be set before they can be used.<br />
<br />
This method is used to set the desired range. There is only one value for desired range within an instance of the AI. The value of desired range is modified internally by AI methods such as fightOrFleeMissile, setCourseToWitchpoint, and setPlanetPatrolCoordinates.<br />
<br />
=== setDestinationFromCoordinates ===<br />
Enables the plotting of manual waypoints.<br />
<br />
=== setDestinationToCurrentLocation ===<br />
This method sets the destination of the current entity to its current location plus a random offset of up to 0.5 metres in the X, Y, and Z coordinates. This can be used to make a ship idle in a small area of space without being completely still.<br />
<br />
=== setDestinationToDockingAbort ===<br />
DockingAbort coordinates... X distance from the dockingslit?<br />
<br />
=== setDestinationToStationBeacon ===<br />
Gets station beacon position.<br />
<br />
=== setDestinationToTarget ===<br />
Sets destination to target coords.<br />
<br />
=== setDestinationToWitchpoint ===<br />
Sets destination coords to WitchspaceExitPosition.<br />
<br />
=== setDestinationWithinTarget ===<br />
Handy for ramming and racing.<br />
<br />
=== setPlanetPatrolCoordinates ===<br />
Check we've arrived near the last given coordinates.<br />
<br />
=== setSunSkimEndCoordinates ===<br />
...<br />
<br />
=== setSunSkimExitCoordinates ===<br />
...<br />
<br />
=== setSunSkimStartCoordinates ===<br />
...<br />
<br />
<br />
== Communication ==<br />
<br />
=== broadcastDistressMessage ===<br />
Locates all the stations, bounty hunters and police ships in range and tells them that you are under attack.<br />
<br />
=== commsMessage:(NSString *)valueString; ===<br />
Broadcasts a general message to player.<br />
Example:<br />
"sendCommsMessage: [thargoid_curses]"<br />
<br />
=== patrolReportIn ===<br />
...<br />
<br />
=== sendTargetCommsMessage:(NSString*) message; ===<br />
Sends any message to the established (found) target.<br />
<br />
Example:<br />
"sendTargetCommsMessage: Listen to me!!"<br />
<br />
== Locating stuff ==<br />
All these methods require a range to be set by setDesiredRange or by <scanner_range> in [[shipdata.plist]], all will return the message TARGET_FOUND or NOTHING_FOUND. <br />
The calling entity remembers the found target, but it does not become the current (universal) target. It can be made the current target by responding to the TARGET_FOUND message with a call to setTargetToFoundTarget.<br />
<br />
=== find.. === <br />
==== findNearestPlanet ====<br />
(PlanetEntity *)<br />
Will scan for planetentity.<br />
<br />
=== scanFor.. ===<br />
==== scanForFormationLeader ====<br />
Locates the nearest suitable formation leader in range.<br />
<br />
==== scanForHostiles ====<br />
Locates all the ships in range targetting the receiver and chooses the nearest.<br />
<br />
==== scanForLoot ====<br />
Locates the nearest debris in range.<br />
<br />
==== scanForNearestMerchantmen ====<br />
Locates the nearest merchantman in range<br />
<br />
==== scanForNearestShipWithRole:(NSString*) scanRole; ====<br />
Locates all the ships in range and chooses the nearest.<br />
<br />
==== scanForNonThargoid ====<br />
Locates all the non thargoid ships in range and chooses the nearest.<br />
<br />
==== scanForOffenders ====<br />
Locates all the ships in range and compares their legal status or bounty, and chooses the worst offender.<br />
<br />
==== scanForRandomLoot ====<br />
Locates the all debris in range and chooses a piece at random from the first sixteen found.<br />
<br />
==== scanForRandomMerchantmen ====<br />
Locates one of the merchantman in range.<br />
<br />
==== scanForRocks ====<br />
Locates the all boulders and asteroids in range and selects one of up to 16. Returns "TARGET_FOUND" or"NOTHING_FOUND".<br />
<br />
==== scanForThargoid ====<br />
Locates all the thargoid warships in range and chooses the nearest.<br />
<br />
=== CheckFor.. ===<br />
"Check for.." methods are a bit more variable in their output messages.<br />
<br />
==== checkCourseToDestination ====<br />
Will return "COURSE_OK" or in case of obstacles on the direct route, "WAYPOINT_SET".<br />
<br />
==== checkDistanceTravelled ====<br />
May return "GONE_BEYOND_RANGE" or DESIRED_RANGE_ACHIEVED.<br />
<br />
==== checkGroupOddsVersusTarget ====<br />
Will return "ODDS_GOOD" or "ODDS_BAD".<br />
<br />
==== checkForFullHold ====<br />
If entity's cargo capacity is reached, will return "HOLD_FULL".<br />
<br />
==== checkForMotherStation ====<br />
Will return "STATION_FOUND" or "NOTHING_FOUND".<br />
<br />
==== checkForNormalSpace ====<br />
Will return "NORMAL_SPACE" or "INTERSTELLAR_SPACE".<br />
<br />
==== checkForShips: type ====<br />
Returns with shipsFound_number = #.<br />
<br />
==== checkTargetLegalStatus ====<br />
Returns "TARGET_CLEAN, "TARGET_MINOR_OFFENDER", "TARGET_OFFENDER", "TARGET_FUGITIVE" or "NO_TARGET".<br />
<br />
== Targeting ==<br />
<br />
=== requestNewTarget ===<br />
Locates all the ships in range targeting the mother ship, and chooses the nearest/biggest.<br />
<br />
=== setTargetToFoundTarget ===<br />
Affirms a [[TARGET_FOUND]] by a scanFor- or find-Something-method as the universal target.<br />
<br />
=== setTargetToPrimaryAggressor ===<br />
Changes to a different enemy target if attacked, unless already very involved in attacking another.<br />
<br />
== Miscellaneous ==<br />
<br />
=== addFuel:(NSString*) fuel_number; ===<br />
Changes fuel level (only of player entity?) by fuel_numer LY's, max to 7.0 min to 0.0.<br />
<br />
=== initialiseTurret ===<br />
Prepares the turret.<br />
<br />
=== rollD:(NSString*) die_number; ===<br />
Uses "dice" for random situation use.<br />
<br />
Example1, 3 options in SomeAI.plist:<br />
GLOBAL = {<br />
ENTER = ("rollD: 3"); <br />
"ROLL_1" = (action1);<br />
"ROLL_2" = (action2);<br />
"ROLL_3" = (action3);}<br />
<br />
Example2, 50% chance in [[script.plist]];<br />
[[conditions]] = ("d100_number lessthan 50");<br />
[[do]] = (action1);<br />
[[else]] = (action2);<br />
is similar in function.<br />
<br />
=== scriptActionOnTarget:(NSString*) action; ===<br />
Will cause immediate reaction to any changes this makes.<br />
<br />
=== setTakeOffFromPlanet ===<br />
Selects the nearest planet it can find and adds entity 10 km from planet, unless there is no planet to be found.<br />
<br />
<br />
{{stub}}<br />
--------------------------------------------------------------------------------<br />
[[Category:Oolite]]</div>Galileohttps://wiki.alioth.net/index.php?title=OXP_howto_AI&diff=3397OXP howto AI2006-02-19T06:38:34Z<p>Galileo: /* performFlyToRangeFromDestination */</p>
<hr />
<div>== Methods for AI ==<br />
Exerpt from the [OoliteAIreference.html]:<br />
<br />
'''AI Script Format'''<br />
<br />
The AI system consists of a [[Stacked AI|stack]] of [[state machine]]s (only the top one of which is active), which respond to game events sent to them as [[Messages|messages]]. They respond by calling a series of [[methods]] which affect the behaviour of the [[entity]] and possibly trigger changes to the '''AI''' by changing the [[state]] or (more drastically) the state machine.<br />
<br />
Each state machine (or AI script) is described in a property list in either [[ASCII]] or [[XML]] format, which can be edited with a text editor or with Property List Editor. The structure is of a dictionary containing each of the machine's possible states referenced by an identifying state name. Each state comprises a dictionary of responses to messages the AI might receive, referenced by the message itself. Each response is an array of methods that will be called when the AI receives that message.<br />
<br />
The AI function calls within a message handler are separated from each other by a comma. If a function takes a parameter the value is separated from the function name by a colon and a space, and both the function name and value are enclosed in double quotes.<br />
<br />
In [[ASCII]] format a simple (two-state) machine looks like this:<br />
{<br />
"STATE_1" = {<br />
"ENTER" = ();<br />
"MESSAGE_A" = ("method1: value", method2, method3);<br />
"MESSAGE_B" = (method4, "setStateTo: STATE_2");<br />
EXIT = ();<br />
UPDATE = ();<br />
};<br />
"STATE_2" = {<br />
"ENTER" = ();<br />
"MESSAGE_A" = ("method1: another_value", method5);<br />
"MESSAGE_B" = (method6, method7, "setStateTo: STATE_1");<br />
EXIT = ();<br />
UPDATE = ();<br />
};<br />
}<br />
The same script in [[twostateXML|XML]].<br />
<br />
== AI ==<br />
=== exitAI ===<br />
Exits current AI.<br />
<br />
=== messageMother:(NSString *)msgString;===<br />
Sends a AImessage to the mothership/leader of a group.<br />
<br />
Example:<br />
INCOMING_MISSILE = ("messageMother: INCOMING_MISSILE");<br />
The mothership will then behave as if it was targetted by the missile.<br />
<br />
=== pauseAI:(NSString *)intervalString; ===<br />
Sets AI think-time in seconds.<br />
<br />
=== setAITo:(NSString *)aiString; ===<br />
Pauses current AI and switches to anotherAI.plist, this becomes the top AI on the 'AI-stack'.<br />
When anotherAI.plist exits ([[exitAI]]), the previousAI becomes topAI again and AI-state is messaged RESTARTED.<br />
<br />
=== setStateTo: SOMESTATE ===<br />
Changes the AI state to SOMESTATE.<br />
<br />
=== switchAITo:(NSString *)aiString; ===<br />
Switches entity AI to another *AI.plist, the previous AI will be exited.<br />
<br />
== AI choices ==<br />
=== fightOrFleeHostiles ===<br />
Has entity consider whether to fight, deploy missiles or flee. Returns "FIGHTING", "DEPLOYING_ESCORTS" or "FLEEING".<br />
<br />
=== fightOrFleeMissile ===<br />
Deals with missiles, launches ECM if available, flees if not, marks as offender if police.<br />
<br />
<br />
== Perform Action ==<br />
=== acceptDistressMessageFrom:(ShipEntity *)other; ===<br />
Has police either respond to a distress call, or possibly decide it is too busy or too scared.<br />
<br />
=== becomeEnergyBlast ===<br />
Used in the [[Q bomb]].<br />
<br />
=== becomeExplosion ===<br />
The entity model is replaced by an explosion.<br />
<br />
=== becomeLargeExplosion ===<br />
Used at player entity death, not for use in other instances.<br />
<br />
=== dealEnergyDamageWithinDesiredRange ===<br />
Needs desiredRange to be set first, then deals [[weaponEnergy]] ([[Shipdata.plist]]) damage within this sphere. <br />
<br />
=== deployEscorts ===<br />
Deploys an escort.<br />
<br />
=== ejectCargo ===<br />
Ejects cargo.<br />
<br />
=== enterTargetWormhole ===<br />
Will locate nearest wormhole, and enter it.<br />
<br />
=== escortCheckMother ===<br />
Returns "ESCORTING" or "NOT_ESCORTING".<br />
<br />
=== fireECM ===<br />
Used by stations and hermits to engage ECM.<br />
<br />
=== groupAttackTarget ===<br />
All ships in group will have their targets set to this entity's target and performAttack.<br />
<br />
=== landOnPlanet ===<br />
Selects the nearest planet it can find, lands (10km from planet) and 'removes' the entity.<br />
<br />
=== Launch..''Some''Ship ===<br />
Launches a ship fron a dockable entity, various types of this method exist.<br />
*LaunchDefenceShip <br />
*LaunchMiner<br />
*LaunchPolice <br />
*LaunchScavenger<br />
Probably will work for other [[roles]] too?<br />
<br />
=== markTargetForFines ===<br />
Deals out a fine to target.<br />
Example:<br />
"markTargetForFines 100"<br />
Will fine the target 10Cr. N.b. for commercial transactions "[[awardMoney]] -$" is a more suitable method.<br />
<br />
=== markTargetForOffence:(NSString*) valueString; ===<br />
Has police mark up the criminal record ([[Legal status]]) of target entity.<br />
<br />
=== messageMother:(NSString *)msgString; ===<br />
Sends a AImessage to the mothership/leader of a group.<br />
Example:<br />
INCOMING_MISSILE = ("messageMother: INCOMING_MISSILE");<br />
The mothership will then behave as if it was targetted by the missile.<br />
<br />
=== performAttack ===<br />
Attacks target.<br />
<br />
=== performCollect ===<br />
Performs 'collection' of target.<br />
<br />
=== performDocking ===<br />
NOT YET IMPLEMENTED.<br />
<br />
=== performEscort ===<br />
Performs escorting.<br />
<br />
=== performFaceDestination ===<br />
Has entity face destination.<br />
<br />
=== performFlee ===<br />
Sets the caller (AI) to flee from it's primary target at maximum speed. If the caller has a cloacking device, it will be activated.<br />
<br />
=== performFlyToRangeFromDestination ===<br />
Sets the AI's current state to CONDITION_FLY_RANGE_FROM_DESTINATION.<br />
While in this state the entity will attempt to fly to its current destination, stopping at the desired range from it.<br />
<br />
=== performFlyToPlanet ===<br />
Used in shuttleAI. combined method to target and fly towards planet?<br />
<br />
=== performHold ===<br />
Performs idleness while tracking a potential target, speed is set to zero. [[frustration]] level is reset.<br />
<br />
=== performHyperSpaceExit ===<br />
Gets a list of destinations within range, checks if clear of nearby masses, and select one at random. May return "WITCHSPACE UNAVAILABLE" or "WITCHSPACE BLOCKED".<br />
<br />
=== performIdle ===<br />
Performs idleness. Ship corrects its roll and pitch to 'horizontal' flight, speed is unaffected. [[frustration]] level is reset to zero.<br />
<br />
=== performIntercept ===<br />
Performs target interception.<br />
<br />
=== performLanding ===<br />
Same as landOnPlanet, duplicate method or no longer in use?<br />
<br />
=== performMining ===<br />
Performs mining. (Finds, intercepts and shoots asteroids with [[mining]] laser, if fitted.)<br />
<br />
=== performTumble ===<br />
Performs random pitch and roll, 'evasive maneuvers'.<br />
<br />
=== setSpeedTo:(NSString *)speedString; ===<br />
Sets desired speed to an absolute value, entity cannot go faster than maxspeed value determined in the [[shipdata.plist]]. If speed is above maxspeed, entity will use fuelinjectors if available. <br />
<br />
=== setSpeedFactorTo:(NSString *)speedString; ===<br />
Sets the desired speed to a percentage of maxspeed (0->1=0%->100%). If speedfactor is set above 100%, entity will use fuelinjectors if available.<br />
<br />
=== setUpEscorts ===<br />
Useful to quickly establish (by name and number the [[shipdata.plist]] prescribed) escorts, when a ship is introduced to a system.<br />
<br />
=== suggestEscort ===<br />
Has an escort seek employment and either gets accepted or rejected by the "mother".<br />
<br />
=== switchLightsOff ===<br />
If an entity has lights (or flashers), this command will turn them off.<br />
Default state is on. (See [[shipdata.plist]])<br />
<br />
=== switchLightsOn ===<br />
Will turn flashers back on.<br />
<br />
=== wormholeEntireGroup ===<br />
Wormholes ships in this group.<br />
<br />
=== wormholeEscorts ===<br />
Wormholes official escorts.<br />
<br />
=== wormholeGroup ===<br />
Wormholes ships in group of which this is a leader.<br />
<br />
== Navigation ==<br />
<br />
=== getWitchspaceEntryCoordinates ===<br />
Calculates coordinates from the nearest station it can find, or just fly 10s forward.<br />
<br />
=== recallDockingInstructions ===<br />
...<br />
<br />
=== requestDockingCoordinates ===<br />
Requests coordinates from the nearest station it can find (which may be a Rock hermit).<br />
<br />
=== setCoordinates:(NSString *)system_x_y_z; ===<br />
Sets PWM destination coords.<br />
<br />
=== setCourseToPlanet ===<br />
Selects the nearest planet it can find, reaching desired range 50 km from the planet.<br />
<br />
=== setCourseToWitchpoint ===<br />
Sets destination coords to Witchpoint area.<br />
<br />
=== setDesiredRangeTo:(NSString *)rangeString; ===<br />
Some methods (such as scanForNearestMerchantmen, checkCourseToDestination, checkDistanceTravelled, etc) require a "desired range" parameter to be set before they can be used.<br />
<br />
This method is used to set the desired range. There is only one value for desired range within an instance of the AI. The value of desired range is modified internally by AI methods such as fightOrFleeMissile, setCourseToWitchpoint, and setPlanetPatrolCoordinates.<br />
<br />
=== setDestinationFromCoordinates ===<br />
Enables the plotting of manual waypoints.<br />
<br />
=== setDestinationToCurrentLocation ===<br />
This method sets the destination of the current entity to its current location plus a random offset of up to 0.5 metres in the X, Y, and Z coordinates. This can be used to make a ship idle in a small area of space without being completely still.<br />
<br />
=== setDestinationToDockingAbort ===<br />
DockingAbort coordinates... X distance from the dockingslit?<br />
<br />
=== setDestinationToStationBeacon ===<br />
Gets station beacon position.<br />
<br />
=== setDestinationToTarget ===<br />
Sets destination to target coords.<br />
<br />
=== setDestinationToWitchpoint ===<br />
Sets destination coords to WitchspaceExitPosition.<br />
<br />
=== setDestinationWithinTarget ===<br />
Handy for ramming and racing.<br />
<br />
=== setPlanetPatrolCoordinates ===<br />
Check we've arrived near the last given coordinates.<br />
<br />
=== setSunSkimEndCoordinates ===<br />
...<br />
<br />
=== setSunSkimExitCoordinates ===<br />
...<br />
<br />
=== setSunSkimStartCoordinates ===<br />
...<br />
<br />
<br />
== Communication ==<br />
<br />
=== broadcastDistressMessage ===<br />
Locates all the stations, bounty hunters and police ships in range and tells them that you are under attack.<br />
<br />
=== commsMessage:(NSString *)valueString; ===<br />
Broadcasts a general message to player.<br />
Example:<br />
"sendCommsMessage: [thargoid_curses]"<br />
<br />
=== patrolReportIn ===<br />
...<br />
<br />
=== sendTargetCommsMessage:(NSString*) message; ===<br />
Sends any message to the established (found) target.<br />
<br />
Example:<br />
"sendTargetCommsMessage: Listen to me!!"<br />
<br />
== Locating stuff ==<br />
All these methods require a range to be set by setDesiredRange or by <scanner_range> in [[shipdata.plist]], all will return the message TARGET_FOUND or NOTHING_FOUND. <br />
The calling entity remembers the found target, but it does not become the current (universal) target. It can be made the current target by responding to the TARGET_FOUND message with a call to setTargetToFoundTarget.<br />
<br />
=== find.. === <br />
==== findNearestPlanet ====<br />
(PlanetEntity *)<br />
Will scan for planetentity.<br />
<br />
=== scanFor.. ===<br />
==== scanForFormationLeader ====<br />
Locates the nearest suitable formation leader in range.<br />
<br />
==== scanForHostiles ====<br />
Locates all the ships in range targetting the receiver and chooses the nearest.<br />
<br />
==== scanForLoot ====<br />
Locates the nearest debris in range.<br />
<br />
==== scanForNearestMerchantmen ====<br />
Locates the nearest merchantman in range<br />
<br />
==== scanForNearestShipWithRole:(NSString*) scanRole; ====<br />
Locates all the ships in range and chooses the nearest.<br />
<br />
==== scanForNonThargoid ====<br />
Locates all the non thargoid ships in range and chooses the nearest.<br />
<br />
==== scanForOffenders ====<br />
Locates all the ships in range and compares their legal status or bounty, and chooses the worst offender.<br />
<br />
==== scanForRandomLoot ====<br />
Locates the all debris in range and chooses a piece at random from the first sixteen found.<br />
<br />
==== scanForRandomMerchantmen ====<br />
Locates one of the merchantman in range.<br />
<br />
==== scanForRocks ====<br />
Locates the all boulders and asteroids in range and selects one of up to 16. Returns "TARGET_FOUND" or"NOTHING_FOUND".<br />
<br />
==== scanForThargoid ====<br />
Locates all the thargoid warships in range and chooses the nearest.<br />
<br />
=== CheckFor.. ===<br />
"Check for.." methods are a bit more variable in their output messages.<br />
<br />
==== checkCourseToDestination ====<br />
Will return "COURSE_OK" or in case of obstacles on the direct route, "WAYPOINT_SET".<br />
<br />
==== checkDistanceTravelled ====<br />
May return "GONE_BEYOND_RANGE" or DESIRED_RANGE_ACHIEVED.<br />
<br />
==== checkGroupOddsVersusTarget ====<br />
Will return "ODDS_GOOD" or "ODDS_BAD".<br />
<br />
==== checkForFullHold ====<br />
If entity's cargo capacity is reached, will return "HOLD_FULL".<br />
<br />
==== checkForMotherStation ====<br />
Will return "STATION_FOUND" or "NOTHING_FOUND".<br />
<br />
==== checkForNormalSpace ====<br />
Will return "NORMAL_SPACE" or "INTERSTELLAR_SPACE".<br />
<br />
==== checkForShips: type ====<br />
Returns with shipsFound_number = #.<br />
<br />
==== checkTargetLegalStatus ====<br />
Returns "TARGET_CLEAN, "TARGET_MINOR_OFFENDER", "TARGET_OFFENDER", "TARGET_FUGITIVE" or "NO_TARGET".<br />
<br />
== Targetting ==<br />
<br />
=== requestNewTarget ===<br />
Locates all the ships in range targetting the mother ship, and chooses the nearest/biggest.<br />
<br />
=== setTargetToFoundTarget ===<br />
Affirms a [[TARGET_FOUND]] by a scanFor- or find-Something-method as the universal target.<br />
<br />
=== setTargetToPrimaryAggressor ===<br />
Changes to a different enemy target if attacked, unless already very involved in attacking another.<br />
<br />
<br />
== Miscellaneous ==<br />
<br />
=== addFuel:(NSString*) fuel_number; ===<br />
Changes fuel level (only of player entity?) by fuel_numer LY's, max to 7.0 min to 0.0.<br />
<br />
=== initialiseTurret ===<br />
Prepares the turret.<br />
<br />
=== rollD:(NSString*) die_number; ===<br />
Uses "dice" for random situation use.<br />
<br />
Example1, 3 options in SomeAI.plist:<br />
GLOBAL = {<br />
ENTER = ("rollD: 3"); <br />
"ROLL_1" = (action1);<br />
"ROLL_2" = (action2);<br />
"ROLL_3" = (action3);}<br />
<br />
Example2, 50% chance in [[script.plist]];<br />
[[conditions]] = ("d100_number lessthan 50");<br />
[[do]] = (action1);<br />
[[else]] = (action2);<br />
is similar in function.<br />
<br />
=== scriptActionOnTarget:(NSString*) action; ===<br />
Will cause immediate reaction to any changes this makes.<br />
<br />
=== setTakeOffFromPlanet ===<br />
Selects the nearest planet it can find and adds entity 10 km from planet, unless there is no planet to be found.<br />
<br />
<br />
{{stub}}<br />
--------------------------------------------------------------------------------<br />
[[Category:Oolite]]</div>Galileohttps://wiki.alioth.net/index.php?title=Shipdata.plist&diff=3396Shipdata.plist2006-02-19T04:01:12Z<p>Galileo: /* scanClass */</p>
<hr />
<div>'''shipdata.plist''' will provide Oolite with all the definitions necessary to include it as an entity in the game, be it ship, station, freak object or sub-entity [[shipdata_structure|(extra)]]. The following (property) entries are, for order's sake, listed alphabetically:<br />
<br />
== aft_eject_position ==<br />
Determines the XYZ point on the model from which cargo is ejected.<br />
<br />
<br />
Example:<br />
<key>aft_eject_position</key><br />
<string>0.0 -4.5 -23.0</string><br />
<br />
<br />
== ai_type ==<br />
Assigns an AI to the entity. This may be a previously existing AI, or one custom made for the occasion.<br />
<br />
<br />
Example:<br />
<key>ai_type</key><br />
<string>pirateAI.plist</string><br />
<br />
== beacon ==<br />
A special feature for beacons and navigation aids.<br />
The string can be anything - the first letter is what's displayed in the advanced space compass.<br />
<br />
Example: <br />
<key>beacon</key><br />
<string>X-code</string> <br />
<br />
<br />
== bounty ==<br />
Sets a Cr. reward on the NPC's head, and is bound to give it trouble with the law .<br />
<br />
<br />
Example:<br />
<key>bounty</key><br />
<integer>50</integer><br />
<br />
<br />
== cargo_carried ==<br />
Determines the type of cargo carried as described in [[commodities.plist]], only one type can be specified. <br />
<br />
Example:<br />
<key>cargo_carried</key><br />
<string>Gold</string><br />
<br />
== cargo_type ==<br />
Determines if object is indeed cargo (CARGO_RANDOM, CARGO_SLAVES) or a ship, as below, which is not cargo. Another notable type of cargo is the scripted item (CARGO_SCRIPTED_ITEM), as examplified by the cloacking device.<br />
<br />
<br />
Example:<br />
<key>cargo_type</key><br />
<string>CARGO_NOT_CARGO</string><br />
<br />
== death_actions ==<br />
Gives an oportunity to have a ship do something special as it's dying. <br />
<br />
<br />
Example:<br />
<key>death_actions</key><br />
<array><br />
<string>spawn: explosive_shrapnel 1</string><br />
</array><br />
<br />
<br />
== energy_recharge_rate ==<br />
The rate at which energy is replenished. Stations are at 100, Adders at 2..<br />
<br />
<br />
Example:<br />
<key>energy_recharge_rate</key><br />
<real>4.5</real><br />
<br />
<br />
== escorts ==<br />
Determines how many escorts an NPC shall have.<br />
<br />
<br />
Example:<br />
<key>escorts</key><br />
<integer>4</integer><br />
<br />
<br />
== escort-role ==<br />
Assigns the specific ship type to be the escort, by the ship's role<br />
<br />
<br />
Example:<br />
<key>escort-role</key> <br />
<string>my_custom_escort_role</string><br />
<br />
<br />
== escort-ship ==<br />
Assigns the specific ship type to be the escort, by the ship's name.<br />
<br />
<br />
Example:<br />
<key>escort-ship</key><br />
<string>cobramk1</string><br />
<br />
<br />
== exhaust ==<br />
The XYZ position(s) of exhaust plume(s), and the XYZ of the plume shape, ergo<br />
<br />
x y z width height lenght<br />
<br />
'''x y z''' is the position relative to the origin of the main model. <br />
<br />
'''width''' in metres, how wide a plume is on x axis. <br />
<br />
'''height''' in metres, how tall a plume is on y axis.<br />
<br />
'''lenght''' in metres, how long a plume is on z axis.<br />
<br />
<br />
Below are 2 assigned plumes at coords 5, 0, -25 and -5, 0, -25, and each plume is 6 m wide, 4 m tall and m 10 long<br />
<br />
<br />
Example:<br />
<key>exhaust</key><br />
<array><br />
<string>5 0.0 -25 6.0 4.0 10.0</string><br />
<string>-5 0.0 -25 6.0 4.0 10.0</string><br />
</array><br />
<br />
<br />
== extra_cargo ==<br />
New in version 1.62rc3<br />
Cargobay extension size can now be customised.<br />
<br />
<br />
Example:<br />
<key>extra_cargo</key><br />
<integer>value</integer<br />
<br />
== forward_weapon_type ==<br />
Assigns the ship's laser. <br />
Any weapon type from the [[equipment.plist]] can be used (and WEAPON_NONE). <br />
<br />
<br />
Example:<br />
<key>forward_weapon_type</key><br />
<string>WEAPON_BEAM_LASER</string><br />
<br />
== frangible ==<br />
Determines if eventual sub-entities are "loose". By default any given object is already frangible, so the use of this line must be to negate that. <br />
If set to false, the object plus subentities will be regarded as a single object.<br />
If set to true, sub entities can be destroyed seperately from the main object.<br />
<br />
<br />
Example:<br />
<key>frangible</key><br />
<false/><br />
<br />
== fuel ==<br />
Determines a ship's fuel storage.<br />
<br />
<br />
Example:<br />
<key>fuel</key><br />
<integer>70</integer><br />
<br />
<br />
== has_ecm ==<br />
Determines if a ship has the E.C.M system installed. By chance factor, or true/false.<br />
<br />
<br />
Example:<br />
<key>has_ecm</key><br />
<real>0.5</real><br />
or<br />
<key>has_ecm</key><br />
<false/><br />
<br />
<br />
== has_escape_pod ==<br />
Determines if a ship has an escape pod.<br />
<br />
<br />
Example: <br />
<key>has_escape_pod</key><br />
<false/><br />
<br />
<br />
== has_fuel_injection ==<br />
Determines if a ship has the witchdrive fuel injector.<br />
<br />
<br />
Example:<br />
<key>has_fuel_injection </key><br />
<real>0.99</real><br />
<br />
== has_scoop ==<br />
Determines if a ship has a fuel/cargo scoop.<br />
<br />
<br />
Example:<br />
<key>has_scoop</key><br />
<false/><br />
<br />
== has_shield_enhancer ==<br />
Determines if a ship has the coveted shield enhancer.<br />
<br />
<br />
Example:<br />
<key>has_shield_enhancer</key><br />
<real>0.45000000000000001</real><br />
<br />
<br />
== hud ==<br />
Used for a playership, to assign another HUD than the default one.<br />
<br />
<br />
Example:<br />
<key>hud</key><br />
<string>specialhud.plist</string><br />
<br />
<br />
== laser_color ==<br />
Determines a ship's laser colour. NPCs that is, not the player's laser.<br />
<br />
<br />
Example:<br />
<key>laser_color</key><br />
<string>pinkColor</string><br />
<br />
<br />
== like_ship ==<br />
Allows a shipdata entry (of a ship with many matching characteristics to another) to be short and sweet, adopting data of stated ship (name), and allowing for any differences between these ships that will be listed. (It is best not to refer to other references.)<br />
<br />
<br />
Example:<br />
<key>like_ship</key><br />
<string>adder</string><br />
<key>max_flight_speed</key><br />
<real>700</real><br />
<key>name</key><br />
<string>Freak Turbo Adder</string><br />
<br />
== likely_cargo ==<br />
Sets a probable number of tons cargo carried by an NPC, as something else than the stated maximum cargo limit.<br />
<br />
<br />
Example:<br />
<key>likely_cargo</key><br />
<integer>2</integer><br />
<br />
<br />
== max_cargo ==<br />
Sets the ship's cargo limit.<br />
<br />
<br />
Example:<br />
<key>max_cargo</key><br />
<integer>5</integer><br />
<br />
<br />
== max_energy ==<br />
Sets the ship's energy value.<br />
<br />
<br />
Example:<br />
<key>max_energy</key><br />
<real>300</real><br />
<br />
<br />
== max_flight_pitch ==<br />
Sets pitch factor. Will usually range from a sluggish 0.6 to a very sensitive 3.0<br />
<br />
<br />
Example:<br />
<key>max_flight_pitch</key><br />
<real>2.2</real><br />
<br />
<br />
== max_flight_roll ==<br />
Sets roll factor. Will usually range from 0.8 to 4.6.<br />
<br />
<br />
Example:<br />
<key>max_flight_roll</key><br />
<real>4.2000000000000002</real><br />
<br />
<br />
== max_flight_speed ==<br />
Sets the model's top speed. Interceptors fly at 520 (0.52 LM), Shuttles at 80.<br />
<br />
<br />
Example:<br />
<key>max_flight_speed</key><br />
<real>320</real><br />
<br />
<br />
== max_missiles ==<br />
Sets a ship's missile limit.<br />
<br />
<br />
Example:<br />
<key>max_missiles</key><br />
<integer>1</integer><br />
<br />
<br />
== missile_launch_position ==<br />
Determines the XYZ point on the model from which a missile is launched.<br />
<br />
<br />
Example:<br />
<key>missile_launch_position</key><br />
<string>0.0 -2.25 10.0</string><br />
<br />
<br />
== missiles ==<br />
Sets a ship's probable number of missiles.<br />
<br />
<br />
Example:<br />
<key>missiles</key><br />
<integer>0</integer><br />
<br />
<br />
== model ==<br />
Assigns the entity's corresponding '''.dat''' file that will be found with the exact same name in the ''Models'' folder.<br />
<br />
<br />
Example:<br />
<key>model</key><br />
<string>example_ship.dat</string><br />
<br />
<br />
== name ==<br />
States the model's name as it will be known to the ID computer.<br />
<br />
<br />
Example:<br />
<key>name</key><br />
<string>ExampleShip Mark IX</string><br />
<br />
<br />
== roles ==<br />
Assigns which role(s) the entity should have, that can correspond to one specific, exclusive use, or several.<br />
<br />
In the example below the ship in question will be considered twice as often (2.0) when a trader is called for, only one quarter as often (0.25) when looking for a hunter, and as often as any other pirate ships when looking for a pirate.<br />
<br />
<br />
Example:<br />
<key>roles</key><br />
<string>hunter(0.25) trader(2.0) pirate</string><br />
<br />
or simply<br />
<br />
<key>roles</key><br />
<string>just_custom_role</string><br />
<br />
<br />
== rotational_velocity ==<br />
May be applied to a sub-entity, like the following entry to the [[Weeviloid 2]]s spines.<br />
Takes the form of [[Quaternions]], below example enables rotation around the Z-axis.<br />
<br />
<br />
Example:<br />
<key>rotational_velocity</key><br />
<string>0.707 0.0 0.0 0.707</string><br />
<br />
== scanClass ==<br />
Will alter the model's appearance on the [[IFF system]]. If this line is omitted, it will become by default a standard ship entity, appearing as yellow flag on the radar. There are other options.<br />
* CLASS_BUOY<br />
* CLASS_CARGO<br />
* CLASS_MILITARY<br />
* CLASS_MISSILE<br />
* CLASS_POLICE<br />
* CLASS_ROCK<br />
* CLASS_STATION<br />
* CLASS_THARGOID<br />
<br />
==== Developer Note ====<br />
Oolite uses scanClass internally to determine the behaviour of some ships (particularly with regard to who may shoot whom without incurring legal penatlties). Bear this in mind and don't allocate CLASS_POLICE or CLASS_THARGOID to ships lightly!<br />
<br />
Example:<br />
<key>scanClass</key><br />
<string>CLASS_ROCK</string><br />
<br />
== script_actions ==<br />
Gives an oportunity to insert events such as in [[script.plist]], to involve a specific shipdata entity. As seen in the following example, this particular object checks if Player has a cloaking device, and if not, will award it. Should Player already have it, the gift will be in gold.<br />
<br />
<br />
Example:<br />
<key>script_actions</key><br />
<array><br />
<string>debugOn</string><br />
<string>testForEquipment: EQ_CLOAKING_DEVICE</string><br />
<dict><br />
<key>conditions</key><br />
<array><br />
<string>foundEquipment_bool equal NO</string><br />
</array><br />
<key>do</key><br />
<array><br />
<string>awardEquipment: EQ_CLOAKING_DEVICE</string><br />
</array><br />
</dict><br />
<dict><br />
<key>conditions</key><br />
<array><br />
<string>foundEquipment_bool equal YES</string><br />
</array><br />
<key>do</key<br />
<array><br />
<string>awardCargo: 100 Gold</string><br />
</array><br />
</dict><br />
<string>debugOff</string><br />
</array><br />
<br />
<br />
== setup_actions ==<br />
Arranges a process that may be necessary for some objects, like ball turrets..<br />
<br />
<br />
Example:<br />
<key>setup_actions</key><br />
<array><br />
<string>initialiseTurret</string><br />
</array><br />
<br />
<br />
== smooth ==<br />
Determines if the model will have magic smoothening method applied (very rare).<br />
<br />
<br />
Example:<br />
<key>smooth</key><br />
<true/><br />
<br />
<br />
== subentities ==<br />
Can assign other objects, lights and turrets, to be associated with the model. The first three numbers are XYZ positions, however, controlling positioning of enslaved objects is done by means of [[quaternions]]. <br />
<br />
Lights follow their own recipe.<br />
*FLASHER* x y z hue speed offset size<br />
<br />
'''x y z''' is the position relative to the origin of the main model. <br />
<br />
'''hue''' describes the colour of the light as a position on a color wheel. <br />
<br />
'''speed''' describes how fast the light pulses (on a sine wave) in Hertz (at 0 the light constantly lit)<br />
<br />
'''offset''' is the offset to the sine wave (0..1) to time-shift each light <br />
<br />
'''size''' is the size of the light's corona in metres<br />
<br />
<br />
Example:<br />
<key>subentities</key><br />
<array><br />
<string>mySubEntity 0 -5 10 1 0 0 0</string><br />
<string>*FLASHER* 0 5.5 10 30.0 1 0.0 12</string><br />
</array><br />
<br />
note: armed subentities always fire along their Z-axis. When rotating along the Z(t=0)-axis.<br />
<br />
== thrust ==<br />
Gives the entity an 'inertia' value, translating size and speed into a form of velocity. 0 for rocks and cargo, 50 for a very fast ship, 100 for a station..<br />
<br />
<br />
Example:<br />
<key>thrust</key><br />
<real>25</real><br />
<br />
<br />
== view_position_.. ==<br />
Sets the ship's 4 view positions in XYZ relative to the model.<br />
<br />
<br />
Example:<br />
<key>view_position_aft</key><br />
<string>0.0 5.0 -20.0</string><br />
<key>view_position_forward</key><br />
<string>0.0 1.9375 5.0</string><br />
<key>view_position_port</key><br />
<string>-11.85 2.825 -3.5</string><br />
<key>view_position_starboard</key><br />
<string>11.85 2.825 -3.5</string><br />
<br />
<br />
== weapon_energy ==<br />
Gives a weapon energy value to the ship's laser that is different than the default.<br />
<br />
<br />
Example:<br />
<key>weapon_energy</key><br />
<real>15</real><br />
<br />
<br />
== weapon_offset ==<br />
must ask Aegidian. does it make a poor shot?<br />
<br />
<br />
Example:<br />
<key>weapon_offset_x</key><br />
<real>10</real><br />
<br />
<br />
== weapon_position_.. ==<br />
Plots the 'gunmouth' points of the model's 4 potential lasers.<br />
<br />
<br />
Example:<br />
<key>weapon_position_aft</key><br />
<string>0.0 -5.0 -20.0</string><br />
<key>weapon_position_forward</key><br />
<string>0.0 0.0417 16.6667</string><br />
<key>weapon_position_port</key><br />
<string>-13.75 -2.0625 -1.875</string><br />
<key>weapon_position_starboard</key><br />
<string>13.75 -2.0625 -1.875</string><br />
<br />
<br />
<br />
--------------------------------------------------------------------------------<br />
[[Category:Oolite]]</div>Galileohttps://wiki.alioth.net/index.php?title=Behemoth&diff=3380Behemoth2006-02-18T03:08:17Z<p>Galileo: /* Docking with a Behemoth */</p>
<hr />
<div>{{Infobox ShipStats Oolite| title=Behemoth class warship<br />
|image = [[Image:Behemoth.png|250px]]<br />
|dimensions = 416 x 160 x 750<br />
|capacity = N/A<br />
|gunmounts = 8 ball turrets<br />
|maxspeed = 0.32 LM<br />
|maneuverability = Roll: 0.4<br />Pitch: 0.2<br />
|energybanks = N/A<br />
|milshields = N/A<br />
|shieldboost = N/A<br />
|hyperspace = Yes<br />
|isoxp = OXP<br />
|isplayer = No<br />
}}<br />
== Overview ==<br />
<br />
The Behemoth-class starship is GalCop's mainstay battleship. Fitted with 8 ball turrets (usually armed with plasma cannons), and with a belly full of [[Viper (Oolite)|Viper]] interceptors, the ship is a formidable opponent for humans and Thargoids alike. Most Behemoth-class vessels are currently assigned to planetary patrol/search and rescue. During peacetime, the Behemoth accepts civilian traffic at its docking port, the military engineers providing the best overhaul/repair facilities to be found. Repairs, fuel and equipment are expensive at these facilities, typically twice the amount that you would pay at a civilian space station.<br />
<br />
== Notable features ==<br />
<br />
The first impression is ''size''. The class is called Behemoth for good reason - the ship must be sized appropriately to carry numerous interceptors. However, for fugitives, this impression is not long lasting. If an unfortunate pirate vessel should come too close to a Behemoth, it will open up with its formidable weaponry. While plasma cannons are somewhat rare on small ships (and also fairly ineffective), the large cannons carried by a Behemoth literally fill the space around the targetted vessel with searing plasma, which quickly strips shields and tears through duralium. Many a fugitive has been caught unawares - the plasma bolts seen against the bulk of this ship look tiny and ineffective, and are paid little attention until they begin to impact.<br />
<br />
[[Image:Behemoth-attack.png|left|thumb|140px|A behemoth fires a broadside]]<br />
<br />
If a full broadside fired by the Behemoth doesn't get a fugitive's attention, the Vipers that begin launching certainly will. The Behemoth is as well defended by Vipers as any space station in a wealthy star system.<br />
<br />
The Behemoth has a surprising turn of speed; large ships such as this are generally limited to very low velocities to prevent the frequent strikes of small meteorites from causing serious damage. However, the Behemoth is fitted with military shields (the shield generation plant alone accounts for a full third of the giant ship's mass), and the Behemoth can survive a high speed collision with asteroids up to three tonnes in mass without taking any damage.<br />
<br />
== Docking with a Behemoth ==<br />
<br />
Most of these ships will accept civilian craft, so long as the commander is in good standing (i.e. not a Fugitive). However, the captain of a Behemoth will rarely make special allowances for visiting craft (such as changing course or slowing down).<br />
<br />
[[Image:Behemoth-dock.jpg|left|thumb|200px|A behemoth's docking port]]<br />
<br />
The captain is also not particularly bothered if you come to grief whilst docking; as previously mentioned, the craft is strong enough to collide with a large asteroid at high speed, and it is unlikely you will even scratch the docking port if you get it wrong (your ship will almost certainly require expensive repairs after a botched docking with a Behemoth).<br />
<br />
The general procedure is to fly ahead of the Behemoth until you are a reasonable distance away, and then turn to face the craft and line up with the port. Since both your ship and the Behemoth are flying towards each other, you will have a high relative speed with the ship, and therefore there is very little time to get lined up. Once you have lined up, slow down to a halt, and wait for the starship to scoop you up. This lessens the chance of a botched docking from causing serious damage to your ship.<br />
<br />
An alternate way of docking is to fly over the top of the Behemoth parallel to its flight path. As you pass the starship, watch for it on your rear view. Match speed with the Behemoth, so you keep station with it, then carefully manoevre until the docking port is lined up in your rear view. Then reduce your speed so the Behemoth catches you up and scoops you up in the docking port.<br />
<br />
If all else fails you could just press Shift+C to engage the autopilot.<br />
<br />
== Download ==<br />
[http://capnhack.com/hosting/oolite/Oolite/OXPs/behemoth.oxp.zip Download the OXP from Oosat]<br />
[[Category:Oolite]]</div>Galileohttps://wiki.alioth.net/index.php?title=Behemoth&diff=3379Behemoth2006-02-18T02:50:26Z<p>Galileo: /* Docking with a Behemoth */</p>
<hr />
<div>{{Infobox ShipStats Oolite| title=Behemoth class warship<br />
|image = [[Image:Behemoth.png|250px]]<br />
|dimensions = 416 x 160 x 750<br />
|capacity = N/A<br />
|gunmounts = 8 ball turrets<br />
|maxspeed = 0.32 LM<br />
|maneuverability = Roll: 0.4<br />Pitch: 0.2<br />
|energybanks = N/A<br />
|milshields = N/A<br />
|shieldboost = N/A<br />
|hyperspace = Yes<br />
|isoxp = OXP<br />
|isplayer = No<br />
}}<br />
== Overview ==<br />
<br />
The Behemoth-class starship is GalCop's mainstay battleship. Fitted with 8 ball turrets (usually armed with plasma cannons), and with a belly full of [[Viper (Oolite)|Viper]] interceptors, the ship is a formidable opponent for humans and Thargoids alike. Most Behemoth-class vessels are currently assigned to planetary patrol/search and rescue. During peacetime, the Behemoth accepts civilian traffic at its docking port, the military engineers providing the best overhaul/repair facilities to be found. Repairs, fuel and equipment are expensive at these facilities, typically twice the amount that you would pay at a civilian space station.<br />
<br />
== Notable features ==<br />
<br />
The first impression is ''size''. The class is called Behemoth for good reason - the ship must be sized appropriately to carry numerous interceptors. However, for fugitives, this impression is not long lasting. If an unfortunate pirate vessel should come too close to a Behemoth, it will open up with its formidable weaponry. While plasma cannons are somewhat rare on small ships (and also fairly ineffective), the large cannons carried by a Behemoth literally fill the space around the targetted vessel with searing plasma, which quickly strips shields and tears through duralium. Many a fugitive has been caught unawares - the plasma bolts seen against the bulk of this ship look tiny and ineffective, and are paid little attention until they begin to impact.<br />
<br />
[[Image:Behemoth-attack.png|left|thumb|140px|A behemoth fires a broadside]]<br />
<br />
If a full broadside fired by the Behemoth doesn't get a fugitive's attention, the Vipers that begin launching certainly will. The Behemoth is as well defended by Vipers as any space station in a wealthy star system.<br />
<br />
The Behemoth has a surprising turn of speed; large ships such as this are generally limited to very low velocities to prevent the frequent strikes of small meteorites from causing serious damage. However, the Behemoth is fitted with military shields (the shield generation plant alone accounts for a full third of the giant ship's mass), and the Behemoth can survive a high speed collision with asteroids up to three tonnes in mass without taking any damage.<br />
<br />
== Docking with a Behemoth ==<br />
<br />
Most of these ships will accept civilian craft, so long as the commander is in good standing (i.e. not a Fugitive). However, the captain of a Behemoth will rarely make special allowances for visiting craft (such as changing course or slowing down).<br />
<br />
[[Image:Behemoth-dock.jpg|left|thumb|200px|A behemoth's docking port]]<br />
<br />
The captain is also not particularly bothered if you come to grief whilst docking; as previously mentioned, the craft is strong enough to collide with a large asteroid at high speed, and it is unlikely you will even scratch the docking port if you get it wrong (your ship will almost certainly require expensive repairs after a botched docking with a Behemoth). The starship also does not carry a civilian docking beacon, so your docking computer will not help you. Only manual docking is possible.<br />
<br />
The general procedure is to fly ahead of the Behemoth until you are a reasonable distance away, and then turn to face the craft and line up with the port. Since both your ship and the Behemoth are flying towards each other, you will have a high relative speed with the ship, and therefore there is very little time to get lined up. Once you have lined up, slow down to a halt, and wait for the starship to scoop you up. This lessens the chance of a botched docking from causing serious damage to your ship.<br />
<br />
An alternate way of docking is to fly over the top of the Behemoth parallel to its flight path. As you pass the starship, watch for it on your rear view. Match speed with the Behemoth, so you keep station with it, then carefully manoevre until the docking port is lined up in your rear view. Then reduce your speed so the Behemoth catches you up and scoops you up in the docking port.<br />
<br />
If all else fails you could just press Shift+C to engage the autopilot.<br />
<br />
== Download ==<br />
[http://capnhack.com/hosting/oolite/Oolite/OXPs/behemoth.oxp.zip Download the OXP from Oosat]<br />
[[Category:Oolite]]</div>Galileohttps://wiki.alioth.net/index.php?title=Oolite_Ships&diff=3315Oolite Ships2006-02-16T23:42:51Z<p>Galileo: /* OXP ships */</p>
<hr />
<div>== Standard ships ==<br />
{| cellspacing="3" align="center" border="0" text-align="center"<br />
|align="center" width="200" height="175"|[[Adder (Oolite)|Adder]]<br>[[Image:adder.png]]<br />
|align="center" width="200" height="175"|[[Anaconda (Oolite)|Anaconda]]<br>[[Image:Anaconda.png]]<br />
|align="center" width="200" height="175"|[[Asp (Oolite)|Asp Mk II]]<br>[[Image:Asp.png]]<br />
|-<br />
|align="center" width="200" height="175"|[[Boa (Oolite)|Boa]]<br>[[Image:Boa.png]]<br />
|align="center" width="200" height="175"|[[Boa 2 Class Cruiser]]<br>[[Image:BoaMkII.png]]<br />
|align="center" width="200" height="175"|[[Cobra Mk.1 (Oolite)|Cobra Mk I]]<br>[[Image:Cobra1.png]]<br />
|-<br />
|align="center" width="200" height="175"|[[Cobra Mk.3 (Oolite)|Cobra Mk III]]<br>[[Image:Cobra3.png]]<br />
|align="center" width="200" height="175"|[[Constrictor (Oolite)|Constrictor]]<br />
|align="center" width="200" height="175"|[[Fer-de-Lance (Oolite|Fer-de-Lance]]<br>[[Image:Ferdelance.png]]<br />
|-<br />
|align="center" width="200" height="175"|[[Gecko (Oolite)|Gecko]]<br>[[Image:Gecko.png]]<br />
|align="center" width="200" height="175"|[[Krait (Oolite)|Krait]]<br>[[Image:Krait.png]]<br />
|align="center" width="200" height="175"|[[Mamba (Oolite)|Mamba]]<br>[[Image:Mamba.png]]<br />
|-<br />
|align="center" width="200" height="175"|[[Moray Star Boat (Oolite)|Moray Star Boat]]<br>[[Image:Moray.png]]<br />
|align="center" width="200" height="175"|[[Python (Oolite)|Python]]<br>[[Image:Python.png]]<br />
|align="center" width="200" height="175"|[[Shuttle (Oolite)|Shuttle]]<br>[[Image:Shuttle.png]]<br />
|-<br />
|align="center" width="200" height="175"|[[Sidewinder (Oolite)|Sidewinder]]<br>[[Image:Sidewinder.png]]<br />
|align="center" width="200" height="175"|[[Thargoid Warship (Oolite)|Thargoid Warship]]<br>[[Image:Thargoid.png]]<br />
|align="center" width="200" height="175"|[[Thargoid Robot Fighter (Oolite)|Thargoid Robot Fighter]]<br>[[Image:Tharglet.png]]<br />
|-<br />
|align="center" width="200" height="175"|[[Transporter (Oolite)|Transporter]]<br>[[Image:Transporter.png]]<br />
|align="center" width="200" height="175"|[[Viper (Oolite)|Viper]]<br>[[Image:Viper.png]]<br />
|align="center" width="200" height="175"|[[Viper Interceptor]]<br>[[Image:Viper_interceptor.png]]<br />
|-<br />
|align="center" width="200" height="175"|[[Worm (Oolite)|Worm]]<br>[[Image:Worm.png]]<br />
|<br />
|<br />
|}<br />
<br />
== [[OXP]] ships ==<br />
{| cellspacing="3" align="center" border="0" text-align="center"<br />
|align="center" width="200" height="175"|[[Aphid]]<br>[[Image:Aphid.png]]<br />
|align="center" width="200" height="175"|[[Behemoth]]<br>[[Image:Behemothsm.png]]<br />
|align="center" width="200" height="175"|[[BoyRacer]]<br>[[Image:BoyRace1.png]]<br />
|-<br />
|align="center" width="200" height="175"|[[CoachWhip]]<br>[[Image:Coach.png]]<br />
|align="center" width="200" height="175"|[[Coral]]<br>[[Image:Coralsm.png]]<br />
|align="center" width="200" height="175"|[[Frog Space Rickshaw]]<br />
|-<br />
|align="center" width="200" height="175"|[[Gaundlet Armoured Transport Type1]]<br>[[Image:Att1.png]]<br />
|align="center" width="200" height="175"|[[Gaundlet Armoured Escort Viper]]<br>[[Image:Atviper.png]]<br />
|align="center" width="200" height="175"|[[Hognose]]<br>[[Image:Hog.png]]<br />
|-<br />
|align="center" width="200" height="175"|[[Ionics Funnelweb]]<br />
|align="center" width="200" height="175"|[[Ionics Huntsman]]<br />
|align="center" width="200" height="175"|[[Ionics Redback]]<br />
|-<br />
|align="center" width="200" height="175"|[[Ionics Whitetail]]<br>[[Image:Whitetail_thumb.png]]<br />
|align="center" width="200" height="175"|[[Josher]]<br>[[Image:Joshersm.png]]<br />
|align="center" width="200" height="175"|[[Llama]]<br />
|-<br />
|align="center" width="200" height="175"|[[Mussurana]]<br>[[Image:Mussuranasm.png]]<br />
|align="center" width="200" height="175"|[[Python Class Cruiser]]<br>[[Image:Pythonshark.png]]<br />
|align="center" width="200" height="175"|[[Rattle Cutter]]<br>[[Image:Rattle.png]]<br />
|-<br />
|align="center" width="200" height="175"|[[Refugee Adder]]<br />
|align="center" width="200" height="175"|[[SuperCobra]]<br />
|align="center" width="200" height="175"|[[Woma]]<br>[[Image:Woma.png]]<br />
|}<br />
[[Category:Oolite]]</div>Galileohttps://wiki.alioth.net/index.php?title=ECM_Hardened_Missile&diff=3312ECM Hardened Missile2006-02-16T21:50:59Z<p>Galileo: fixed a few typos</p>
<hr />
<div>{{Infobox MissStats Oolite| title = HMX5 Missile <br />
|image = [[Image:Missile-Oolite-scope.png|250px]]<br />
|dimensions = 1.4 x 1.4 x 8.0<br />
|maxspeed = 0.75 LM<br />
|maneuverability = Roll: 10.0<br />Pitch: 8.0<br />
|explosive_yield = 12.5 kilotonnes<br />
|isoxp = Standard<br />
}}<br />
== Overview ==<br />
<br />
At last, a missile that stands an excellent chance of doing its job, as opposed to its usually futile predecessor. This weapon often proves it's worth, but at a cost that makes stingy commanders hesitate to use them.<br />
<br />
== Development ==<br />
<br />
[[Missile]]s were fast becoming useless as every pilot who expected to get in a dog-fight would have the [[Thargoids|Thargoid]]-inspired [[E.C.M. System]]s installed. The growing number of missile-refunds paid out to dissatisfied customers made extremely depressing reading to the missile-manufacturing industry.<br />
<br />
It was even declared that missile technology was a science of the ancient past, and remote controlled craft were to be the next big thing. The secret development of the ECM-hardened HMX5 homing missile, by [[Faulcon de Lacy]], followed by great surprise as it was unveiled, has put missiles back on wish lists of Naval requisition officers everywhere.<br />
<br />
FdL is back in business and stocks are up.<br />
<br />
== Availability ==<br />
Price to fit: 350.0 Cr.<br />
Techlevel: 9<br />
Mounts one ECMH missile. <br />
<br />
Price to remove: 20.0<br />
Techlevel: 1<br />
Unmounts all missiles and re-sells them at full market value.<br />
<br />
== Links ==<br />
Back to: [[Oolite Equipment]]<br />
[[Category:Oolite]]</div>Galileohttps://wiki.alioth.net/index.php?title=Talk:Main_Page&diff=3311Talk:Main Page2006-02-16T21:39:55Z<p>Galileo: </p>
<hr />
<div>What do people think about something like [[User:Galileo|this]] for a Main Page? --[[User:Galileo|Galileo]] 14:06, 13 February 2006 (UTC)<br />
:nice<br />
<br />
threw in some icons onto Galileo's layout.--[[User:Murgh|Murgh]] 23:21, 13 February 2006 (UTC)<br />
<br />
I was able to animate the fiction gif.<br />
:I wasn't able to preserve the blurring around the edge though, do we keep it? --[[User:Galileo|Galileo]] 12:58, 16 February 2006 (UTC)<br />
<br />
I get the feeling that's impossible. but it's so small I don't find it bothersome. success! --[[User:Murgh|Murgh]] 18:02, 16 February 2006 (UTC)<br />
: Yeah, that's what I was thinking too. Alrighty, we'll keep in then. --[[User:Galileo|Galileo]] 21:39, 16 February 2006 (UTC)</div>Galileohttps://wiki.alioth.net/index.php?title=Talk:Main_Page&diff=3304Talk:Main Page2006-02-16T12:59:32Z<p>Galileo: </p>
<hr />
<div>What do people think about something like [[User:Galileo|this]] for a Main Page? --[[User:Galileo|Galileo]] 14:06, 13 February 2006 (UTC)<br />
:nice<br />
<br />
<br />
threw in some icons onto Galileo's layout.--[[User:Murgh|Murgh]] 23:21, 13 February 2006 (UTC)<br />
I was able to animate the fiction gif.<br />
:I wasn't able to preserve the blurring around the edge though, do we keep it? --[[User:Galileo|Galileo]] 12:58, 16 February 2006 (UTC)</div>Galileohttps://wiki.alioth.net/index.php?title=Talk:Main_Page&diff=3303Talk:Main Page2006-02-16T12:58:58Z<p>Galileo: </p>
<hr />
<div>What do people think about something like [[User:Galileo|this]] for a Main Page? --[[User:Galileo|Galileo]] 14:06, 13 February 2006 (UTC)<br />
:nice<br />
<br />
<br />
threw in some icons onto Galileo's layout.--[[User:Murgh|Murgh]] 23:21, 13 February 2006 (UTC)<br />
I was able to animate the fiction gif. I wasn't able to preserve the blurring around the edge though, do we keep it? --[[User:Galileo|Galileo]] 12:58, 16 February 2006 (UTC)</div>Galileohttps://wiki.alioth.net/index.php?title=Main_Page&diff=3302Main Page2006-02-16T12:56:39Z<p>Galileo: animated fiction gif</p>
<hr />
<div>{| cellspacing="3" align="center" style="width:75%" border="1"<br />
|colspan="2" style="border: 1px solid #cfcfbf; padding: .5em 1em 1em; color: #000000; background-color: #f0f0ff; vertical-align: top;"|<br />
<center><br />
<font size="4">'''Welcome to the Elite Wiki'''</font><br />
<br />
Welcome to the [[Elite]] [http://en.wikipedia.org/wiki/Wiki Wiki], a user-edited guide to the world of Elite. Feel free to edit or add any pages you feel are necessary, but please read the [[EliteWiki:Manual of Style|Manual of Style]] first...<br />
<br />
</center><br />
|- valign="top"<br />
|colspan="2" style="border: 1px solid #cfcfbf; padding: .5em 1em 1em; color: #000000; background-color: #f0f0ff; vertical-align: top;"|<br />
<center> {{Click || image=ClassicElite-IconBW.png | link=:Category:Classic | width=90px | height=90px }}<br /><br />
<font size="3">'''[[:Category:Classic|Classic Elite]]'''</font><br />
<br />
'Classic Elite' - i.e. Elite 1 - BBC Micro, Spectrum, Elite+, ArcElite etc., including things like Elite: TNK<br />
<br />
</center><br />
|- valign="top"<br />
|width="300" style="border: 1px solid #cfcfbf; padding: .5em 1em 1em; color: #000000; background-color: #f0f0ff; vertical-align: top;"|<br />
<center> {{Click || image=FE2-IconBW.png | link=:Category:FE2 | width=90px | height=90px }}<br /><br />
<font size="3">'''[[:Category:FE2|Frontier Elite: 2]]'''</font><br />
<br />
Information regarding the first sequel to Elite.<br />
<br />
</center><br />
|width="300" style="border: 1px solid #cfcfbf; padding: .5em 1em 1em; color: #000000; background-color: #f0f0ff; vertical-align: top;"|<br />
<center> {{Click || image=FFE-IconBW.png | link=:Category:FFE | width=90px | height=90px }}<br /><br />
<font size="3">'''[[:Category:FFE|Frontier First Encounters]]'''</font><br />
<br />
Information regarding the third instalment of Elite.<br />
<br />
</center><br />
|- valign="top"<br />
|width="300" style="border: 1px solid #cfcfbf; padding: .5em 1em 1em; color: #000000; background-color: #f0f0ff; vertical-align: top;"|<br />
<center> {{Click || image=Oolite-IconBW.png | link=Oolite Main Page | width=90px | height=90px }}<br /><br />
<font size="3">'''[[Oolite Main Page|Oolite]]'''</font><br />
<br />
Information regarding the [http://en.wikipedia.org/wiki/Open_source Open Source] recreation of Elite.<br />
<br />
</center><br />
|width="300" style="border: 1px solid #cfcfbf; padding: .5em 1em 1em; color: #000000; background-color: #f0f0ff; vertical-align: top;"|<br />
<center> {{Click || image=Elite4-iconBW.png | link=:Category:Elite4 | width=90px | height=90px }}<br /><br />
<font size="3">'''[[:Category:Elite4|Elite 4]]'''</font><br />
<br />
Information regarding the (yet to be released) fourth instalment of the Elite series.<br />
<br />
</center><br />
|}<br />
<br />
<br />
{| cellspacing="3" align="center" style="width:75%" border="1"<br />
|- valign="top"<br />
|colspan="2" style="border: 1px solid #cfcfbf; padding: .5em 1em 1em; color: #000000; background-color: #f0f0ff; vertical-align: top;"|<br />
<center><br />
<font size="4">'''Other Stuff'''</font><br />
<br />
</center><br />
|- valign="top"<br />
|width="300" style="border: 1px solid #cfcfbf; padding: .5em 1em 1em; color: #000000; background-color: #f0f0ff; vertical-align: top;"|<br />
<center><br />
<font size="3">'''Helping with the Wiki'''</font><br />
<br />
Feel free to start editing as soon as you feel you can, but please read the Manual of Style before editing, and make any testing of the wiki system in the Sandbox. Visit the village pump to make any discussions you wish about better organizing the wiki, or adding major new additions to the wiki, or start right in on requests posted in the article requests.<br />
<br />
[[EliteWiki:Manual of Style|Manual of Style]], [[EliteWiki:Sandbox|Sandbox]], [[EliteWiki:Village Pump|Village Pump]], [[EliteWiki:Requested Articles|Article Requests]], [[EliteWiki:Requests for Deletion|Requests for Deletion]]<br />
</center><br />
|width="300" style="border: 1px solid #cfcfbf; padding: .5em 1em 1em; color: #000000; background-color: #f0f0ff; vertical-align: top;"|<br />
<center> {{Click || image=Fiction-IconBW.gif | link=:Category:Fiction | width=90px | height=90px }}<br /><br />
<font size="3">'''[[:Category:Fiction|Fiction]]'''</font><br />
<br />
Fiction based in the world of Elite.<br />
<br />
</center><br />
|}</div>Galileo