projectile 
Vars | |
| always_hit_living_nondense | Does this projectile hit living non dense mobs? |
|---|---|
| always_nonmob_ricochet | Do we always bounce off non mobs? |
| antimagic_charge_cost | determines the drain cost on the antimagic item |
| antimagic_flags | determines what type of antimagic can block the spell projectile |
| armor_penetration_flat | Flat armor reduction, occurs after percentage armor penetration. |
| armor_penetration_percentage | Percentage armor reduction, happens before flat armor reduction. |
| chain | For when you want your projectile to have a chain coming out of the gun |
| force_no_hit_message_or_sound | Is this projectile forced to not make hit messages or sound to avoid spam? |
| forcedodge | Number of times an object can pass through an object. -1 is infinite |
| has_been_fired | Has the projectile been fired? |
| hitsound | Hit sound to play when we hit something |
| 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 | |
| is_hostile_projectile | Is this projectile considered "hostile"? |
| on_atom_entered | A mob moving on a tile with a projectile is hit by it. |
| preparePixelProjectile | Aims the projectile at a target. |
Var Details
always_hit_living_nondense 
Does this projectile hit living non dense mobs?
always_nonmob_ricochet 
Do we always bounce off non mobs?
antimagic_charge_cost 
determines the drain cost on the antimagic item
antimagic_flags 
determines what type of antimagic can block the spell projectile
armor_penetration_flat 
Flat armor reduction, occurs after percentage armor penetration.
armor_penetration_percentage 
Percentage armor reduction, happens before flat armor reduction.
chain 
For when you want your projectile to have a chain coming out of the gun
force_no_hit_message_or_sound 
Is this projectile forced to not make hit messages or sound to avoid spam?
forcedodge 
Number of times an object can pass through an object. -1 is infinite
has_been_fired 
Has the projectile been fired?
hitsound 
Hit sound to play when we hit something
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
is_hostile_projectile
Is this projectile considered "hostile"?
By default all projectiles which deal damage or impart crowd control effects (including stamina) are hostile
This is NOT used for pacifist checks, that's handled by [/obj/item/ammo_casing/var/harmful] This is used in places such as AI responses to determine if they're being threatened or not (among other places)
on_atom_entered
A mob moving on a tile with a projectile is hit by it.
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!