projectile 
Vars | |
| Angle | The current angle of the projectile. Initially null, so if the arg is missing from [/fire()], we can calculate it from firer and target as fallback. |
|---|---|
| armour_penetration | How much armor this projectile pierces. |
| beam_segments | Assoc list of datum/point_precise or datum/point_precise/vector, start = end. Used for hitscan effect generation. |
| chain | For when you want your projectile to have a chain coming out of the gun |
| damage_type | BRUTE, BURN, TOX, OXY, CLONE are the only things that should be in here. |
| def_zone | Body part at which the projectile was aimed. |
| dismember_head | If TRUE, projectile with dismemberment will forcefully cut head instead of gibbing them |
| dismember_limbs | If TRUE, projectile with dismemberment will cut limbs instead of gib them |
| dismemberment | The higher the number, the greater the bonus to dismembering. 0 will not dismember at all. |
| fire_log_text | Full log text. gets filled in fire() type, damage, reagents e.t.c. |
| firer | Mob who shot projectile. |
| firer_source_atom | The gun or object projectile came from. |
| flag | Defines what armor to use when it hits things. Must be set to bullet, laser, energy,or bomb //Cael - bio and rad are also valid |
| forced_accuracy | Does this projectile ignores def zone calculations. Used for sniper bullets. |
| forcedodge | Number of times an object can pass through an object. -1 is infinite |
| has_been_fired | Has the projectile been fired? |
| hit_crawling_mobs_chance | Probability to hit lying non-dead mobs |
| hitscan | Wherever this projectile is hitscan. Hitscan projectiles are processed until the end of their path instantly upon being fired and leave a tracer in their path |
| hitscan_last | Last turf touched during hitscanning. |
| impact_effect_type | What type of impact effect to show when hitting something |
| impact_type | Hitscan impact effect spawned on the target |
| 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 |
| log_override | Whether print to admin attack logs or just keep it in the diary. example: laser tag or practice lasers |
| muzzle_type | Hitscan muzzle effect spawned on the firer |
| nodamage | Determines if the projectile will skip any damage inflictions. |
| original | Original target clicked. |
| original_angle | Angle at the moment of firing |
| p_x | The pixel location X of the tile that the player clicked. Default is the center. |
| p_y | The pixel location Y of the tile that the player clicked. Default is the center. |
| paused | Used for suspending the projectile midair. |
| permutated | List of atoms we have passed through, don't try to hit them again. |
| range | This will de-increment every step. When 0, it will delete the projectile. |
| reflectability | Determines the reflectability level of a projectile, either REFLECTABILITY_NEVER, REFLECTABILITY_PHYSICAL, REFLECTABILITY_ENERGY in order of ease to reflect. |
| shield_buster | Does this projectile do extra damage to / break shields? |
| shockbull | If set to TRUE /obj/item/hardsuit_taser_proof upgrage will block this projectile. |
| speed | Amount of deciseconds it takes for projectile to travel. |
| spread | Amount (in degrees) of projectile spread. |
| starting | Projectile's starting turf. |
| suppressed | Used to determine sound and attack message. |
| tile_dropoff | How much damage should be decremented as the bullet moves. |
| tile_dropoff_forcedodge | How much forcedodge should be decremented as the bullet moves. |
| tile_dropoff_penetration | How much armour penetration should be decremented as the bullet moves. |
| tile_dropoff_s | How much stamina damage should be decremented as the bullet moves. |
| time_offset | Left over ticks in movement calculation |
| tracer_type | Hitscan tracer effect left behind the projectile |
| trajectory | The projectile's trajectory |
| trajectory_ignore_forcemove | Instructs forceMove to NOT reset our trajectory to the new location! |
| xo | Initial target y coordinate offset of the projectile |
| yo | Initial target x coordinate offset of the projectile |
Procs | |
| get_splatter_blockage | Checks whether the place we want to splatter blood is blocked (i.e. by windows). |
| on_range | If we want there to be effects when they reach the end of their range |
| preparePixelProjectile | Aims the projectile at a target. |
Var Details
Angle 
The current angle of the projectile. Initially null, so if the arg is missing from [/fire()], we can calculate it from firer and target as fallback.
armour_penetration 
How much armor this projectile pierces.
beam_segments 
Assoc list of datum/point_precise or datum/point_precise/vector, start = end. Used for hitscan effect generation.
chain 
For when you want your projectile to have a chain coming out of the gun
damage_type 
BRUTE, BURN, TOX, OXY, CLONE are the only things that should be in here.
def_zone 
Body part at which the projectile was aimed.
dismember_head 
If TRUE, projectile with dismemberment will forcefully cut head instead of gibbing them
dismember_limbs 
If TRUE, projectile with dismemberment will cut limbs instead of gib them
dismemberment 
The higher the number, the greater the bonus to dismembering. 0 will not dismember at all.
fire_log_text 
Full log text. gets filled in fire() type, damage, reagents e.t.c.
firer 
Mob who shot projectile.
firer_source_atom 
The gun or object projectile came from.
flag 
Defines what armor to use when it hits things. Must be set to bullet, laser, energy,or bomb //Cael - bio and rad are also valid
forced_accuracy 
Does this projectile ignores def zone calculations. Used for sniper bullets.
forcedodge 
Number of times an object can pass through an object. -1 is infinite
has_been_fired 
Has the projectile been fired?
hit_crawling_mobs_chance 
Probability to hit lying non-dead mobs
hitscan 
Wherever this projectile is hitscan. Hitscan projectiles are processed until the end of their path instantly upon being fired and leave a tracer in their path
hitscan_last 
Last turf touched during hitscanning.
impact_effect_type 
What type of impact effect to show when hitting something
impact_type 
Hitscan impact effect spawned on the target
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
log_override 
Whether print to admin attack logs or just keep it in the diary. example: laser tag or practice lasers
muzzle_type 
Hitscan muzzle effect spawned on the firer
nodamage 
Determines if the projectile will skip any damage inflictions.
original 
Original target clicked.
original_angle 
Angle at the moment of firing
p_x 
The pixel location X of the tile that the player clicked. Default is the center.
p_y 
The pixel location Y of the tile that the player clicked. Default is the center.
paused 
Used for suspending the projectile midair.
permutated 
List of atoms we have passed through, don't try to hit them again.
range 
This will de-increment every step. When 0, it will delete the projectile.
reflectability 
Determines the reflectability level of a projectile, either REFLECTABILITY_NEVER, REFLECTABILITY_PHYSICAL, REFLECTABILITY_ENERGY in order of ease to reflect.
shield_buster 
Does this projectile do extra damage to / break shields?
shockbull 
If set to TRUE /obj/item/hardsuit_taser_proof upgrage will block this projectile.
speed 
Amount of deciseconds it takes for projectile to travel.
spread 
Amount (in degrees) of projectile spread.
starting 
Projectile's starting turf.
suppressed 
Used to determine sound and attack message.
tile_dropoff 
How much damage should be decremented as the bullet moves.
tile_dropoff_forcedodge 
How much forcedodge should be decremented as the bullet moves.
tile_dropoff_penetration 
How much armour penetration should be decremented as the bullet moves.
tile_dropoff_s 
How much stamina damage should be decremented as the bullet moves.
time_offset 
Left over ticks in movement calculation
tracer_type 
Hitscan tracer effect left behind the projectile
trajectory 
The projectile's trajectory
trajectory_ignore_forcemove 
Instructs forceMove to NOT reset our trajectory to the new location!
xo 
Initial target y coordinate offset of the projectile
yo 
Initial target x coordinate offset of the projectile
Proc Details
get_splatter_blockage
Checks whether the place we want to splatter blood is blocked (i.e. by windows).
on_range
If we want there to be effects when they reach the end of their range
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!