# projectile

## Vars | |

chain | For when you want your projectile to have a chain coming out of the gun |
---|---|

forcedodge | Number of times an object can pass through an object. -1 is infinite |

has_been_fired | Has the projectile been fired? |

immolate | Does the projectile increase fire stacks / immolate mobs on hit? Applies fire stacks equal to the number on hit. |

last_angle_set_hitscan_store | Last turf an angle was changed in for hitscan projectiles. |

last_projectile_move | Last world.time the projectile proper moved |

min_ricochets | how many times we have to ricochet min (unless we hit an atom we can ricochet off) |

reflectability | Determines the reflectability level of a projectile, either REFLECTABILITY_NEVER, REFLECTABILITY_PHYSICAL, REFLECTABILITY_ENERGY in order of ease to reflect. |

ricochet_auto_aim_angle | On ricochet, if ricochet_auto_aim_range is nonzero, we'll consider any mobs within this range of the normal angle of incidence to home in on, higher = more auto aim |

ricochet_auto_aim_range | On ricochet, if nonzero, we consider all mobs within this range of our projectile at the time of ricochet to home in on like Revolver Ocelot, as governed by ricochet_auto_aim_angle |

ricochet_chance | 0-100 (or more, I guess), the base chance of ricocheting, before being modified by the atom we shoot and our chance decay |

ricochet_decay_chance | 0-1 (or more, I guess) multiplier, the ricochet_chance is modified by multiplying this after each ricochet |

ricochet_decay_damage | 0-1 (or more, I guess) multiplier, the projectile's damage is modified by multiplying this after each ricochet |

ricochet_incidence_leeway | the angle of impact must be within this many degrees of the struck surface, set to 0 to allow any angle |

ricochet_shoots_firer | Can our ricochet autoaim hit our firer? |

ricochets | how many times we've ricochet'd so far (instance variable, not a stat) |

ricochets_max | how many times we can ricochet max |

shield_buster | Does this projectile do extra damage to / break shields? |

time_offset | Left over ticks in movement calculation |

trajectory | The projectile's trajectory |

trajectory_ignore_forcemove | Instructs forceMove to NOT reset our trajectory to the new location! |

## Procs | |

preparePixelProjectile | Aims the projectile at a target. |

## Var Details

### chain

For when you want your projectile to have a chain coming out of the gun

### forcedodge

Number of times an object can pass through an object. -1 is infinite

### has_been_fired

Has the projectile been fired?

### immolate

Does the projectile increase fire stacks / immolate mobs on hit? Applies fire stacks equal to the number on hit.

### last_angle_set_hitscan_store

Last turf an angle was changed in for hitscan projectiles.

### last_projectile_move

Last world.time the projectile proper moved

### min_ricochets

how many times we have to ricochet min (unless we hit an atom we can ricochet off)

### reflectability

Determines the reflectability level of a projectile, either REFLECTABILITY_NEVER, REFLECTABILITY_PHYSICAL, REFLECTABILITY_ENERGY in order of ease to reflect.

### ricochet_auto_aim_angle

On ricochet, if ricochet_auto_aim_range is nonzero, we'll consider any mobs within this range of the normal angle of incidence to home in on, higher = more auto aim

### ricochet_auto_aim_range

On ricochet, if nonzero, we consider all mobs within this range of our projectile at the time of ricochet to home in on like Revolver Ocelot, as governed by ricochet_auto_aim_angle

### ricochet_chance

0-100 (or more, I guess), the base chance of ricocheting, before being modified by the atom we shoot and our chance decay

### ricochet_decay_chance

0-1 (or more, I guess) multiplier, the ricochet_chance is modified by multiplying this after each ricochet

### ricochet_decay_damage

0-1 (or more, I guess) multiplier, the projectile's damage is modified by multiplying this after each ricochet

### ricochet_incidence_leeway

the angle of impact must be within this many degrees of the struck surface, set to 0 to allow any angle

### ricochet_shoots_firer

Can our ricochet autoaim hit our firer?

### ricochets

how many times we've ricochet'd so far (instance variable, not a stat)

### ricochets_max

how many times we can ricochet max

### shield_buster

Does this projectile do extra damage to / break shields?

### time_offset

Left over ticks in movement calculation

### trajectory

The projectile's trajectory

### trajectory_ignore_forcemove

Instructs forceMove to NOT reset our trajectory to the new location!

## Proc Details

### preparePixelProjectile

Aims the projectile at a target.

Must be passed at least one of a target or a list of click parameters. If only passed the click modifiers the source atom must be a mob with a client.

Arguments:

- target: (Optional) The thing that the projectile will be aimed at.
- source: The initial location of the projectile or the thing firing it.
- modifiers: (Optional) A list of click parameters to apply to this operation.
- deviation: (Optional) How the trajectory should deviate from the target in degrees.
- //Spread is FORCED!