Difference between revisions of "HowTo:Make Weapons"
(Added documentation on creating weapon upgrades thanks to prestidigitator) |
(better than nothing anyway, and a few examples.) |
||
Line 24: | Line 24: | ||
** <code>mountsize</code> | ** <code>mountsize</code> | ||
* <code><'''Energy''' ... /></code> | * <code><'''Energy''' ... /></code> | ||
− | ** <code>rate</code> - Energy requirement | + | ** <code>rate</code> - Energy requirement (per second), in units of 100s of MJ |
** <code>stability</code> - Maximum continuous firing duration | ** <code>stability</code> - Maximum continuous firing duration | ||
** <code>refire</code> - Rest time, in seconds, between firing | ** <code>refire</code> - Rest time, in seconds, between firing | ||
** <code>locktime</code> - N/A for beams | ** <code>locktime</code> - N/A for beams | ||
* <code><'''Damage''' ... /></code> | * <code><'''Damage''' ... /></code> | ||
− | ** <code>rate</code> - Damage output | + | ** <code>rate</code> - Damage output (per second), in units of 5.4 MJ |
− | ** <code>phasedamage</code> - Damage | + | ** <code>phasedamage</code> - Damage (per second) that ignores shields, in units of 5.4 MJ |
** <code>longrange</code> - Fraction of damage applied at max range | ** <code>longrange</code> - Fraction of damage applied at max range | ||
* <code><'''Distance''' ... /></code> | * <code><'''Distance''' ... /></code> | ||
− | ** <code>speed</code> - Speed at which beam travels linearly through space, in meters/second (usually rather fast) | + | ** <code>speed</code> - Speed at which beam travels linearly through space, in meters/second (usually rather fast). E.g.: all lasers have 300000000 (light speed). |
** <code>radialspeed</code> - Speed at which beam reaches full radius, and full damage, in meters/second | ** <code>radialspeed</code> - Speed at which beam reaches full radius, and full damage, in meters/second | ||
** <code>radius</code> - Beam radius, in meters | ** <code>radius</code> - Beam radius, in meters | ||
** <code>length</code> - N/A for beams | ** <code>length</code> - N/A for beams | ||
− | ** <code>pulsespeed</code> - Controls visual wave effect in beam | + | ** <code>pulsespeed</code> - Controls visual wave effect in beam. E.g.: tractor beams have negative value, so the beam texture moves not from the weapon, but toward it. |
** <code>range</code> - Max damaging range, in meters | ** <code>range</code> - Max damaging range, in meters | ||
** <code>detonationrange</code> - N/A for beams | ** <code>detonationrange</code> - N/A for beams | ||
− | ** <code>volume</code> - | + | ** <code>volume</code> - ammo volume, in meters<sup>3</sup> ({{fixme}} per second). Jackhammer currently is the only beam that uses ammo. |
* <code><'''Appearance''' ... /></code> | * <code><'''Appearance''' ... /></code> | ||
** <code>file</code> | ** <code>file</code> | ||
** <code>soundwav</code> | ** <code>soundwav</code> | ||
− | ** <code>r</code> | + | ** <code>r</code> <code>g</code> <code>b</code> <code>a</code> - color components (with transparency) of the beam. E.g.: Tractor and Repulsor use the same texture, but different colors. |
− | |||
− | |||
− | |||
===Bolt=== | ===Bolt=== | ||
+ | Mostly similar to Beam, with the following difference: | ||
+ | <code><'''bolt''' ... ></code> | ||
+ | * <code><'''Energy''' ... /></code> | ||
+ | ** <code>rate</code> - Energy requirement (per shot), in units of 100s of MJ | ||
+ | ** <code>stability</code> - N/A for anything except beams | ||
+ | ** <code>refire</code> - Time between shots, in seconds | ||
+ | * <code><'''Damage''' ... /></code> | ||
+ | ** <code>rate</code> - Damage output (per shot), in units of 5.4 MJ | ||
+ | ** <code>phasedamage</code> - Damage (per shot) that ignores shields, in units of 5.4 MJ | ||
+ | * <code><'''Distance''' ... /></code> | ||
+ | ** <code>pulsespeed</code> - N/A for anything but beams | ||
+ | ** <code>volume</code> - ammo volume (per shot), in meters<sup>3</sup> | ||
===Ball=== | ===Ball=== | ||
+ | Mostly similar to Bolt, but is spherical. | ||
+ | <code><'''ball''' ... ></code> | ||
===Missile=== | ===Missile=== | ||
+ | Mostly similar to Bolt, with the following difference: | ||
+ | <code><'''missile''' ... ></code> | ||
+ | * <code><'''Energy''' ... /></code> | ||
+ | ** <code>locktime</code> - Time to lock on the target, in seconds. Should work with any weapon but is used only with missiles, since it doesn't have much sense for most non-guided weapons. | ||
+ | * <code><'''Damage''' ... /></code> | ||
+ | ** <code>rate</code> - Damage output, in units of 5.4 MJ. {{fixme}} Uses a complicated formula; it looks like ot zero distance the damage is twice this much, but don't count on this. | ||
+ | ** <code>phasedamage</code> - Damage that ignores shields, in units of 5.4 MJ. | ||
+ | * <code><'''Distance''' ... /></code> | ||
+ | ** <code>radius</code> - {{fixme}} Seems to be the radius in which the damage is applied, in meters. | ||
+ | ** <code>detonationrange</code> - {{fixme}} The maximum distance from a target at which the missile detonates, in meters. Negative values are used for drones. Should work for any weapon except beams, but only missiles have radius damage. | ||
==Weapon AI's== | ==Weapon AI's== |
Revision as of 13:09, 9 August 2010
MOD | HowTos | Add Upgrades |
Contents
Adding weapons to the weapon list
Weapon descriptons are stored in the weapon_list.xml in the data directory.
Weapons are classified as FIXME DIFFERENCES BETWEEN CATEGORIES
- Beam
- Bolt
- Ball
- Missile
Weapon XML Schema
FIXME ADD DESCRIPTIONS TO SCHEMA
Beam
<beam ... >
-
name
-
mountsize
-
-
<Energy ... />
-
rate
- Energy requirement (per second), in units of 100s of MJ -
stability
- Maximum continuous firing duration -
refire
- Rest time, in seconds, between firing -
locktime
- N/A for beams
-
-
<Damage ... />
-
rate
- Damage output (per second), in units of 5.4 MJ -
phasedamage
- Damage (per second) that ignores shields, in units of 5.4 MJ -
longrange
- Fraction of damage applied at max range
-
-
<Distance ... />
-
speed
- Speed at which beam travels linearly through space, in meters/second (usually rather fast). E.g.: all lasers have 300000000 (light speed). -
radialspeed
- Speed at which beam reaches full radius, and full damage, in meters/second -
radius
- Beam radius, in meters -
length
- N/A for beams -
pulsespeed
- Controls visual wave effect in beam. E.g.: tractor beams have negative value, so the beam texture moves not from the weapon, but toward it. -
range
- Max damaging range, in meters -
detonationrange
- N/A for beams -
volume
- ammo volume, in meters3 (FIXME per second). Jackhammer currently is the only beam that uses ammo.
-
-
<Appearance ... />
-
file
-
soundwav
-
r
g
b
a
- color components (with transparency) of the beam. E.g.: Tractor and Repulsor use the same texture, but different colors.
-
Bolt
Mostly similar to Beam, with the following difference:
<bolt ... >
-
<Energy ... />
-
rate
- Energy requirement (per shot), in units of 100s of MJ -
stability
- N/A for anything except beams -
refire
- Time between shots, in seconds
-
-
<Damage ... />
-
rate
- Damage output (per shot), in units of 5.4 MJ -
phasedamage
- Damage (per shot) that ignores shields, in units of 5.4 MJ
-
-
<Distance ... />
-
pulsespeed
- N/A for anything but beams -
volume
- ammo volume (per shot), in meters3
-
Ball
Mostly similar to Bolt, but is spherical.
<ball ... >
Missile
Mostly similar to Bolt, with the following difference:
<missile ... >
-
<Energy ... />
-
locktime
- Time to lock on the target, in seconds. Should work with any weapon but is used only with missiles, since it doesn't have much sense for most non-guided weapons.
-
-
<Damage ... />
-
rate
- Damage output, in units of 5.4 MJ. FIXME Uses a complicated formula; it looks like ot zero distance the damage is twice this much, but don't count on this. -
phasedamage
- Damage that ignores shields, in units of 5.4 MJ.
-
-
<Distance ... />
-
radius
- FIXME Seems to be the radius in which the damage is applied, in meters. -
detonationrange
- FIXME The maximum distance from a target at which the missile detonates, in meters. Negative values are used for drones. Should work for any weapon except beams, but only missiles have radius damage.
-
Weapon AI's
Example 1: Beam Weapon
<Beam name="LR_PminusBeamMKIV" mountsize="capship-massive"> <Energy rate="1500" stability="8" refire="2" /> <Damage rate="15000" longrange=".8" /> <Distance speed="300000" radialspeed="60" radius="60" length="8" pulsespeed="36" range="150000" /> <Appearance file="weapons/heavylaserbeam.png" soundwav="beam1.wav" r=".6" g=".1" b=".8" a=".6" /> </Beam>
Example 2: Spinning Weapon
You can make it spin as well by making it an accessory of the missle/weapon:
- You make it a subunit (turret) at the center, which has the word
accessory
in its name (e.g call it torpedo_accessory) - Set the
max_yaw
,max_pitch
, andmax_roll
to whatever you want it to spin at. - Make an invisible (or e.g torpedo casing) main body.
Creating a weapon upgrade
prestidigitator documented his steps to create new weapons in a forum post. Here it is:
You will need to create an upgrade file for this weapon that appears in master_parts_list.csv as well as units.csv.
Here is what I have done:
- weapon_list.xml: Copied the entire <Beam name="LaserBeam' ...> node to the end of the file (just before the </WEAPONS> end tag), changed the name from "LaserBeam" to "MyLaserBeam", and modified the values to be what I wanted (I left the "mountsize" attribute as "light").
- master_part_list.csv: Copied the line starting with "laser_beam" to the end of the file and changed "laser_beam" to "my_laser_beam".
- units/units.csv: Copied the line starting with "laser_beam__upgrades" to the end of the file, changed "laser_beam__upgrades" to "my_laser_beam__upgrades", changed "./factions/upgrades/laser_beam" to "./factions/upgrades/my_laser_beam", changed the second "laser_beam" to "my_laser_beam", and finally changed the "LaserBeam" to "MyLaserBeam".
- units/factions/upgrades/: Copied the "laser_beam/laser_beam" file to "my_laser_beam/my_laser_beam" and changed the "weapon" attribute of the <mount> node from "LaserBeam" to "MyLaserBeam".
There's an ordering problem. I moved all the additions to immediately after those entries for the laser beam, and it worked.
So, I guess if you are trying to do this, consider my steps above to be a mini-HowTo, with the caveat that you should be careful about WHERE in the files you add things.
See also
MOD | HowTos | Add Upgrades |