Ai profiles.tbl

From FreeSpace Wiki
Revision as of 14:04, 12 November 2011 by Zookeeper (talk | contribs) (Documented $no warp camera)
Jump to: navigation, search
This feature requires SCP

Revision information.....

FSO Revision: 5211
Note: Please update the version when the page is updated. If your edit had nothing to do with new code entries then please do not edit the version


Ai_profiles.tbl allows the creation and management of different patterns of AI behavior, called profiles. Profiles consist of various statistics and flags that provide some control over AI behavior. All options within a profile are optional; if an option is not specified it will follow the original FreeSpace 2 retail behavior. Different missions can specify different profiles.

There is a "hidden" profile called FS2 RETAIL that is hard-coded into FreeSpace Open and cannot be modified. It is always the default profile unless another is specified using $Default Profile.


Contents

General Format

#AI Profiles

$Default Profile: a profile name

Up to 9 different AI profiles

#End


#AI Profiles

  • Indicates to the parser that this is an ai_profiles table file.


$Default Profile:

  • Defines the profile that each mission will use if no profile is specified in FRED. In addition, this profile will be selected automatically in FRED when you create a new mission. If this line is not specified, the default profile will be the FreeSpace 2 retail behavior.


$Profile Name:

  • The name of the profile, naturally.




The following entries accept float list of five comma-separated values. One value for each of the difficulty levels (Very Easy, Easy, Medium, Hard, Insane).


$Player Afterburner Recharge Scale:

FS2 Open 3.6.10:
  • Sets the speed of afterburner recharge
  • Syntax: Float list
    • Default: 5, 3, 2, 1.5, 1


$Max Beam Friendly Fire Damage:

FS2 Open 3.6.10:
  • Defines the maximum damage inflicted by friendly beam fire
  • Syntax: Float list
    • Default: 0, 5, 10, 20, 30


$Player Countermeasure Life Scale:

FS2 Open 3.6.10:
  • Sets the factor applied to player launched countermeasure lifetime
  • Syntax: Float list
    • Default: 3, 2, 1.5, 1.25, 1


$AI Countermeasure Firing Chance:

FS2 Open 3.6.10:
  • Defines the chance a countermeasure will be fired by an AI-controlled ship (this is scaled by ai_class)
  • Syntax: Float list
    • Default: 0.2, 0.3, 0.5, 0.9, 1.1


$AI In Range Time:

FS2 Open 3.6.10:
  • Defines the seconds added to the time it takes for an enemy to come in range of (i.e. target) a friendly ship
  • Syntax: Float list
    • Default: 2, 1.4, 0.75, 0, -1


$AI Always Links Ammo Weapons:

FS2 Open 3.6.10:
  • AI ships will link ballistic primaries if ammo levels are greater than these percents.
  • Syntax: Float list
    • Default: 95, 80, 60, 40, 20


$AI Maybe Links Ammo Weapons:

FS2 Open 3.6.10:
  • Defines the same as $AI Always Links Ammo Weapons: but in situations when its hull is below 33 % of maximum hitpoints.
  • Syntax: Float list
    • Default: 90, 60, 40, 20, 10


$Primary Ammo Burst Multiplier:

FS2 Open, 3.6.12:
  • Allows the AI to fire primary weapons in bursts. How long the bursts are (and how much time between them) is a function of ammo remaining, distance to target, angle to target, and this multiplier. A value of 0 turns this feature off (AI fires normally, without bursts). A value < 1 will make for shorter bursts with larger gaps, and a value > 1 will give longer bursts with shorter gaps.
  • Syntax: Float list
    • Default: 0, 0, 0, 0, 0


$AI Always Links Energy Weapons:

FS2 Open 3.6.10:
  • AI ships will link energy primaries if energy levels are greater than these percents.
  • Syntax: Float list
    • Default: 100, 80, 60, 40, 20


$AI Maybe Links Energy Weapons:

FS2 Open 3.6.10:
  • Defines the same as $AI Always Links Energy Weapons: but in situations when its hull is below 33 % of maximum hitpoints.
  • Syntax: Float list
    • Default: 90, 60, 40, 20, 10


$Max Missles Locked on Player:

FS2 Open 3.6.10:
  • Defines the maximum number of missiles allowed to be homing in on a player at any given time
  • Note: Single-player only, no restriction in multiplayer
  • Syntax: Float list
    • Default: 2, 3, 4, 7, 99


$Max Player Attackers:

FS2 Open 3.6.10:
  • Sets the maximum number of ships allowed to be attacking the player at any given time
  • Syntax: Float list
    • Default: 2, 3, 4, 5, 99


$Max Incoming Asteroids:

FS2 Open 3.6.10:
  • Sets the maximum number of active (i.e. "thrown") asteroids that can be heading toward a friendly ship at any given time
  • Syntax: Float list
    • Default: 3, 4, 5, 7, 10


$Player Damage Factor:

FS2 Open 3.6.10:
  • Defines the factor applied to damage suffered by the player
  • Syntax: Float list
    • Default: 0.25, 0.5, 0.65, 0.85, 1


$Player Subsys Damage Factor:

FS2 Open 3.6.10:
  • Sets the factor applied to subsystem damage suffered by the player. This is in addition to the $Player Damage Factor:
  • Syntax: Float list
    • Default: 0.2, 0.4, 0.6, 0.8, 1


$Predict Position Delay:

FS2 Open 3.6.10:
  • Sets the measure of time (in F1_0 units) after which the AI will recalculate the position of its target
  • Syntax: Float list
    • Default: 2, 1.5, 1.333, 0.5, 0


$Player Shield Recharge Scale:

FS2 Open 3.6.10:
  • Sets the factor applied to the speed at which the player's shields recharge
  • Syntax: Float list
    • Default: 4, 2, 1.5, 1.25, 1


$AI Shield Manage Delay:

FS2 Open 3.6.10:
  • Also $AI Shield Manage Delays:
  • Sets the time in seconds between each instance of an AI ship managing its shields
  • Syntax: Float list
    • Default: 5, 4, 2.5, 1.2, 0.1


$Friendly AI Fire Delay Scale:

FS2 Open 3.6.10:
  • Sets the factor applied to "fire wait" for friendly ships
  • Syntax: Float list
    • Default: 2, 1.4, 1.25, 1.1, 1


$Hostile AI Fire Delay Scale:

FS2 Open 3.6.10:
  • Sets the factor applied to "fire wait" for hostile ships
  • Syntax: Float list
    • Default: 4, 2.5, 1.75, 1.25, 1


$Player Subsys Damage Factor:

FS2 Open 3.6.10:
  • Also $AI Damage Reduction to Player Subsys:
  • Syntax: Float list
    • Default: 0.2, 0.4, 0.6, 0.8, 1


$AI Turn Time Scale:

FS2 Open 3.6.10:
  • Defines the factor applied to time it takes for enemy ships to turn. A value of 1.0 means the ship turns at normal speed, 2.0 means half speed (takes twice as long), etc. Note that this value ONLY affects ships hostile to the player (always 1.0 for friendly ships).
  • Syntax: Float list
    • Default: 3, 2.2, 1.6, 1.3, 1


$Glide Attack Percent:

FS2 Open, 3.6.12:
  • How often the AI will use the "glide attack" move when it has the opportunity. Glide attack means using glide to maintain course while aiming and firing at the current target. Only affects ships capable of glide.
  • Syntax: Float list
    • Default: 0, 0, 0, 0, 0


$Circle Strafe Percent:

FS2 Open, 3.6.12:
  • How often the AI will use the "circle strafe" move when it has the opportunity. Circle strafe means that the ship will attempt "Descent-like" combat, trying to maintain distance while circling around the target using sidethrusters. Ships will only attempt this when sidethrust top speed is at least 2/3 of target's current velocity.
  • Syntax: Float list
    • Default: 0, 0, 0, 0, 0


$Glide Strafe Percent:

FS2 Open, 3.6.12:
  • How often the AI will use the "glide strafe" move when it has the opportunity. Glide strafe means using glide to attack capships by flying past and shooting at them. Only affects ships capable of glide.
  • Syntax: Float list
    • Default: 0, 0, 0, 0, 0


$Stalemate Time Threshold:

FS2 Open, 3.6.12:
  • The minimum amount of time required for the AI to detect a "stalemate" situation. If a ship and its target have been within a certain distance of each other (defined by $Stalemate Distance Threshold) for this amount of time without either of them scoring a hit on the other, the AI will do something to break the stalemate. Only applies to small ships. If this value is 0 or less, no stalemate detection is performed.
  • Syntax: Float list
    • Default: 0, 0, 0, 0, 0


$Stalemate Distance Threshold:

FS2 Open, 3.6.12:
  • The maximum distance that an AI ship must remain from its target for a "stalemate" to occur (see $Stalemate Time Threshold).
  • Syntax: Float list
    • Default: 0, 0, 0, 0, 0


$Player Weapon Recharge Scale:

FS2 Open 3.6.10:
  • Defines the factor applied to the speed at which the player's weapons recharge
  • Syntax: Float list
    • Default: 10, 4, 2.5, 2, 1.5


$Max Turret Target Ownage:

FS2 Open 3.6.10:
  • Sets the maximum number of turrets on a particular ship allowed to be attacking the same target at any given time
  • Syntax: Float list
    • Default: 3, 4, 7, 12, 19


$Max Turret Player Ownage:

FS2 Open 3.6.10:
  • Sets the maximum number of turrets on a particular ship allowed to be attacking the player at any given time
  • Syntax: Float list
    • Default: 3, 4, 7, 12, 19


$Percentage Required For Kill Scale:

FS2 Open 3.6.10:
  • Sets the minimum percentage of the total assessed damage a player must inflict in order to be awarded a kill (3.6.10 and on)
  • Syntax: Float list
    • Default: 0.30, 0.30, 0.30, 0.30, 0.30


$Percentage Required For Assist Scale:

FS2 Open 3.6.10:
  • Sets the minimum percentage of the total assessed damage a player must inflict in order to be awarded an assist (3.6.10 and on)
  • Syntax: Float list
    • Default: 0.15, 0.15, 0.15, 0.15, 0.15


$Percentage Awarded For Capship Assist:

FS2 Open 3.6.10:
  • In TvT and Coop missions all teammates will be granted this percentage of the capships score when someone scores a kill (3.6.10 and on)
  • Syntax: Float list
    • Default: 0.5, 0.5, 0.5, 0.5, 0.5


$Repair Penalty:

FS2 Open, 3.6.12:
  • The amount to subtract from the player's score if they are repaired by a support ship
  • Syntax: Integer list
    • Default: 10, 20, 35, 50, 60


$Delay Before Allowing Bombs to Be Shot Down:

FS2 Open, 3.6.12:
  • Time after bombs are fired during which the bombs are invulnerable to weapon hits
  • Syntax: Float list
    • Default: 1.5, 1.5, 1.5, 1.5, 1.5


$Chance AI Has to Fire Missiles at Player:

FS2 Open, 3.6.12:
  • Chance - expressed in (value + 1) / 7 - of each AI turret within current 10 second segment to be allowed to shoot missiles at player ship.
  • Syntax: Float list
    • Default: 0, 1, 2, 3, 4


$Max Aim Update Delay:

FS2 Open, 3.6.12:
  • Maximum amount of delay allowed before the AI will update its aim. Until the next update, the AI will project the target forward based on last checked position and velocity. Applies to small ships vs small ships (dogfights). The actual delay is randomly selected between 0 and the maximum (so setting a value of 2 will result in an average of 1 second delay).
  • Syntax: Float list
    • Default: 0, 0, 0, 0, 0


$Turret Max Aim Update Delay:

FS2 Open, 3.6.12:
  • As $Max Aim Update Delay, but affecting turrets instead
  • Syntax: Float list
    • Default: 0, 0, 0, 0, 0


The following entries are boolean flags. They can be set to YES or NO, TRUE or FALSE, OUI or NON, HIja′ or ghobe′, etc. The default is NO.

$big ships can attack beam turrets on untargeted ships:

FS2 Open 3.6.10:
  • If set, big ships can attack a beam turret that's firing on them from a ship that they don't currently have targeted.

$smart primary weapon selection:

FS2 Open 3.6.10:
  • If set, enables the new primary weapon selection method

$smart secondary weapon selection:

FS2 Open 3.6.10:
  • If set, enables the new secondary weapon selection method (including proper use of bomber+ missiles)

$smart shield management:

FS2 Open 3.6.10:
  • If set, shields will devote all their charging energy to the weakest quadrant(s) and not waste energy on fully-charged quadrants (previously was -smart_shields on the command line)

$smart afterburner management:

FS2 Open 3.6.10:
  • If set, the AI will properly use brief pulses of afterburner power instead of afterburning until fuel is exhausted

$allow rapid secondary dumbfire:

FS2 Open 3.6.10:
  • If set, allows an AI ship to switch to rapid fire for dumbfire missiles

$huge turret weapons ignore bombs:

FS2 Open 3.6.10:
  • If set, causes huge turret weapons (including anti-capship beams) to not target bombs

$don't insert random turret fire delay:

FS2 Open 3.6.10:
  • If set, removes the random turret fire delay (from .1 to .9 seconds) inserted in addition to AI Fire Delay Scale

$hack improve non-homing swarm turret fire accuracy:

FS2 Open 3.6.10:
  • If set, triggers a hack to improves the accuracy of non-homing swarm missiles by firing them along the turret's last fire direction rather than the direction it currently faces
  • Also disables swarm weapons ability to fire only on the 'turrets barrel line'.

$shockwaves damage small ship subsystems:

FS2 Open 3.6.10:
  • If set, shockwaves will cause damage to small ship subsystems (like in FS1)

$navigation subsystem governs warpout capability:

FS2 Open 3.6.10:
  • If set, ships will not be able to warp out if their navigation subsystem is destroyed or low in strength

$ignore lower bound for minimum speed of docked ship:

FS2 Open 3.6.10:
  • If set, there will be no lower bound for the speed at which docked ships move (like in FS1).
  • When a ship is towing another ship or ships, the towing ship will be slowed down to a degree depending on the total mass of all docked ships. In FS1, the ships could slow down to an arbitrarily slow speed, even a fraction of a m/s above zero. In FS2, there is a lower bound on this behavior so that all ships are guaranteed to move at a minimum docked speed. When set, this flag removes the lower bound and restores FS1 behavior.

$disable linked fire penalty:

FS2 Open 3.6.10:
  • If set, there will be no penalty for linking primaries. Normally, the rate of fire is divided by the number of linked guns.

$disable weapon damage scaling:

FS2 Open 3.6.10:
  • If set, weapons will do the same damage to a ship regardless of "big damage", "supercap", etc. ship types.

$use additive weapon velocity:

FS2 Open 3.6.10:
  • If set, weapons will inherit their firing ship's velocity. A ship traveling quickly will fire weapons faster than a ship traveling slowly. This also improves the accuracy of weapons fired while gliding.

$use newtonian dampening:

FS2 Open 3.6.10:
  • Newtonian Dampening changes turning and acceleration behavior. By default, there's quite a bit of slide when you turn, and when combined with high damp values (such as in BtRL), you can actually push your speed up beyond the max. Newtonian Dampening is the more realistic turns, where too much turning will lower your speed. Forward momentum is also affected. Backslash can explain it in more detail. [1]

$include beams for kills and assists:

FS2 Open 3.6.10:
  • If set, beam damage is counted when calculating kills and assists.

$score kills based on damage caused:

FS2 Open 3.6.10:
  • If set, kills gain score based on the percentage damage the killer inflicted on the dead ship.

$score assists based on damage caused:

FS2 Open 3.6.10:
  • If set, kills gain score based on the percentage damage the player gaining the assist inflicted on the dead ship.

$allow event and goal scoring in multiplayer:

FS2 Open 3.6.10:
  • If set, players (rather than just their team) can gain score from events in multiplayer.

$fix linked primary weapon decision bug:

FS2 Open 3.6.10:
  • If set, the AI will properly link primaries according to specified percentages of energy levels instead of retail behavior where it mistakenly linked according to absolute energy levels.

$prevent turrets targeting too distant bombs:

FS2 Open 3.6.10:
  • If set, prevents turrets from targeting bombs beyond maximum range of the weapons of the turret.

$smart subsystem targeting for turrets:

FS2 Open 3.6.10:
  • If set, prevents turrets from trying to target subsystems beyond their fov limits, also keeps the turret subsystem targeting preference order intact regardless of the angle to the target.

$fix heat seekers homing on stealth ships bug:

FS2 Open 3.6.10:
  • If set, heat-seeking missiles will not home in on stealth ships (this mirrors the established behavior where heat-seeking missiles do not home in on ships that are hidden from sensors).

$multi allow empty primaries:

FS2 Open 3.6.10:
  • If set, allows a player to commit into a multiplayer game without primaries.

$multi allow empty secondaries:

FS2 Open 3.6.10:
  • If set, allows a player to commit into a multiplayer game without secondaries.

$allow turrets target weapons freely:

FS2 Open, 3.6.12:
  • If set, allows turrets to target any weapons instead of just targeting bombs, to be used in conjunction with target priorities setup.

$use only single fov for turrets:

FS2 Open, 3.6.12:
  • If set, allows turrets to fire outside some hardcoded FOV set for certain missile types limits, and rely only on the user defined FOV.

$allow vertical dodge:

FS2 Open, 3.6.12:
  • If set, allows ships to dodge weapons fire vertically as well as horizontally.

$force beam turrets to use normal fov:

FS2 Open, 3.6.12:
  • If set makes beam turrets use same FOV rules as other weapons do. Prevents beam from a turret from following the target beyond the turret's FOV

$fix AI class bug:

FS2 Open, 3.6.12:
  • Fixes a bug where AI class attributes are not set properly on ships if the AI class is set in the mission to something other than the default for the ship type. Set this to YES if you want attributes in Ai.tbl to mean anything at all.

$No extra collision avoidance vs player:

FS2 Open, 3.6.12:
  • Disables the extra collision avoidance that AI normally uses against the player. Makes the AI more aggressive vs the player at close range (same treatment as vs other AI), although ship-ship collisions are slightly more likely.

$all ships manage shields:

FS2 Open, 3.6.14:
  • Allows AI to manage shields on big ships

$ai aims from ship center:

FS2 Open, 3.6.14:
  • AI aims weapons using the center of the ship instead of the first gunpoint. If a convergence offset is specified for this ship in ships.tbl, AI aims using that as a reference point. Default: NO.

$allow primary link delay:

FS2 Open, 3.6.14:
  • When set, no ships will link primaries for the first 30 seconds of a mission. In addition, ships will randomly not link for the first two minutes of a mission. Set this to NO to get rid of this often-problematic retail behavior. Default: YES.

$allow beams to damage bombs:

FS2 Open, 3.6.14:
  • When set, beam weapons will be able to effectively intercept bombs. In addition, bombs flying through a beam path will get damaged and destroyed. Default: NO.

$disable weapon damage scaling for player:

FS2 Open, 3.6.14:
  • When set, Player weapon damage will no longer be scaled down when firing a non-huge primary against a ship with the "big damage" flag. Use with caution, as this may severely impact mission balance. Default: NO.

$ai path mode:

FS2 Open, 3.6.14:
  • Possible options are "normal" and "alt1". The alt1 mode differs from the normal behaviour in the following ways:
    • 1. No path shortcutting. Normal pathing AI will skip forward along a path to the furthest point it can reach. This is sometimes desirable, but makes it a lot harder to predict how the AI is going to behave at various points along a path. Turning this off also allows us to force the AI to straighten out, by giving it several waypoints in a more-or-less straight line. This is useful for such things as lining up a landing.
    • 2. No sliding when following paths. Docking still works, but there is some code that causes the AI to go full retard if it just misses a point: it turns towards the point in big, looping circles. This is apparently caused by passing a slide_vec value into ai_turn_towards_vector, which doesn't even seem to do what you'd expect it to do. Passing a null value instead turns off the stupid.
    • 3. Momentum taken into account when following paths. Path points will trigger sooner, proportional to the ship's speed and momentum. This prevents the AI from massively overshooting a waypoint, especially with high-damp ships.
    • 4. AI tries to follow the line between waypoints. Instead of just pointing at the next waypoint, the AI will fly a bit towards the line. This helps keep the AI actually on the path it claims to be following. See picture:Altpaths.png
Blue is what happens with regular pathing. Red is the modified pathing: as you can see, it actively moves back towards the line.

$Default weapon select effect:

FS2 Open, 3.6.14:
  • This specifies which effect to use for weapon select animations when no .ani can be found, or the -weapon_choice_3d commandline flag is active. This will default to the FS2 effect.
  • Possible options are "FS1" and "off"

$Default ship select effect:

FS2 Open, 3.6.14:
  • This specifies which effect to use for ship select animations when no .ani can be found, or the -ship_choice_3d commandline flag is active. This will default to the FS2 effect.
  • Possible options are "FS1" and "off"

$no warp camera:

FS2 Open, 3.6.16:
  • When set, prevents the view from switching to the external camera when the player warps out.
  • Note: this flag is deprecated and may get moved to another table without further notice.

Sample Entry

  • Retail FS2 behaviour
#AI Profiles

$Default Profile:                              FS2 RETAIL

$Profile Name:                                 FS2 RETAIL

$Player Afterburner Recharge Scale:            5,    3,    2,    1.5,  1
$Max Beam Friendly Fire Damage:                0,    5,    10,   20,   30
$Player Countermeasure Life Scale:             3,    2,    1.5,  1.25, 1
$AI Countermeasure Firing Chance:              0.2,  0.3,  0.5,  0.9,  1.1
$AI In Range Time:                             2,    1.4,  0.75, 0,    -1
$AI Always Links Ammo Weapons:                 95,   80,   60,   40,   20
$AI Maybe Links Ammo Weapons:                  90,   60,   40,   20,   10
$AI Always Links Energy Weapons:               100,  80,   60,   40,   20
$AI Maybe Links Energy Weapons:                90,   60,   40,   20,   10
$Max Missles Locked on Player:                 2,    3,    4,    7,    99
$Max Player Attackers:                         2,    3,    4,    5,    99
$Max Incoming Asteroids:                       3,    4,    5,    7,    10
$Player Damage Factor:                         0.25, 0.5,  0.65, 0.85, 1
$Player Subsys Damage Factor:                  0.2,  0.4,  0.6,  0.8,  1
$Predict Position Delay:                       2,    1.5,  1.33, 0.5,  0
$AI Shield Manage Delay:                       5,    4,    2.5,  1.2,  0.1
$Friendly AI Fire Delay Scale:                 2,    1.4,  1.25, 1.1,  1
$Hostile AI Fire Delay Scale:                  4,    2.5,  1.75, 1.25, 1
$AI Turn Time Scale:                           3,    2.2,  1.6,  1.3,  1
$Player Shield Recharge Scale:                 4,    2,    1.5,  1.25, 1
$Player Weapon Recharge Scale:                 10,   4,    2.5,  2,    1.5
$Max Turret Target Ownage:                     3,    4,    7,    12,   19
$Max Turret Player Ownage:                     3,    4,    7,    12,   19
$Percentage Required For Kill Scale:           0.30, 0.30, 0.30, 0.30, 0.30
$Percentage Required For Assist Scale:         0.15, 0.15, 0.15, 0.15, 0.15
$Percentage Awarded For Capship Assist:        0.5,  0.5,  0.5,  0.5,  0.5
$Repair Penalty:                               10,   20,   35,   50,   60
$Delay Before Allowing Bombs to Be Shot Down:  1.5,  1.5,  1.5,  1.5,  1.5

$big ships can attack beam turrets on untargeted ships:  NO
$smart primary weapon selection:                         NO
$smart secondary weapon selection:                       NO
$smart shield management:                                NO
$smart afterburner management:                           NO
$allow rapid secondary dumbfire:                         NO
$huge turret weapons ignore bombs:                       NO
$don't insert random turret fire delay:                  NO
$hack improve non-homing swarm turret fire accuracy:     NO
$shockwaves damage small ship subsystems:                NO
$navigation subsystem governs warpout capability:        NO
$ignore lower bound for minimum speed of docked ship:    NO
$disable linked fire penalty:                            NO
$disable weapon damage scaling:                          NO
$use additive weapon velocity:                           NO
$use newtonian dampening:                                NO
$include beams for kills and assists:                    NO
$score kills based on damage caused:                     NO
$score assists based on damage caused:                   NO
$allow event and goal scoring in multiplayer:            NO
$fix linked primary weapon decision bug:                 NO
$prevent turrets targeting too distant bombs:            NO
$smart subsystem targeting for turrets:                  NO
$fix heat seekers homing on stealth ships bug:           NO
$multi allow empty primaries:                            NO
$multi allow empty secondaries:                          NO
$allow turrets target weapons freely:                    NO
$use only single fov for turrets:                        NO
$allow vertical dodge:                                   NO
$fix AI class bug:                                       NO
#End

References

  1. "Re: New difficulty? - Feature request!", Hard Light Productions Forums, Hard Light Productions, 2007-12-15. Retrieved on December_27, 2007.