Projectile (modding)

From Cosmoteer Wiki
< ModdingModding/Projectile
Jump to navigation Jump to search


Projectiles are separate from parts in the code as well. They have their own components and possible behaviors. Part components won't work on them.

They are all referred to as "bullet" in the source code.


In fact they are defined by the Bullet class :

Encapsulates a single bullet in the scene and all the components contained therein.

Below are the fields for their .rules files. E.g. ion_beam.rules or pd_shot.rules .

List of Data Fields

Complete list
Name Type Required Buffable? Description
ID
Cosmoteer.Data.ID<BulletRules>

meaning :

string

Yes No Identifier that must be unique across the game.
OtherIDs
Cosmoteer.Data.ID<BulletRules>[]?

meaning :

array of strings

No No Legacy identifiers. You shouldn't need or use this.
Range
float Yes Yes How far the target can be when the projectile is shot at it.
IdealRange
float

Or :

[float, float]

No Yes The game's AI will try to use that weapon from that range. Usually shorter than Range, to prevent the weapon from becoming out of range if the target moves backwards even a little. This can be a range of values (see Type column), not sure why.

Used by Ions.

IdealRadius
float

Or :

[float, float]

No Yes ??
Speed
float Yes Yes How fast the projectile moves forward when spawned. Acceleration components can completely alter the trajectory.
ReceivableBuffIDs

alias

ReceivableBuffs

HashSet<string>?

meaning :

array of strings

No - List of buffs this projectile can receive.
ForgetTarget
bool No No ??
RandomRotation
bool No No Presumably whether or not the projectile is spawned looking in a random direction.

Notes

FactorEffectsWith = Targetable means "shrink with hp".

See also