Prototype/Projectile: Difference between revisions

From Official Factorio Wiki
Jump to navigation Jump to search
(→‎Optional properties: add a note to hit_at_collision_position to elaborate on its effect)
mNo edit summary
 
(8 intermediate revisions by 2 users not shown)
Line 6: Line 6:
== Mandatory properties ==
== Mandatory properties ==
This prototype inherits all the properties from [[Prototype/Entity]].
This prototype inherits all the properties from [[Prototype/Entity]].
{{Prototype property|animation|[[Types/Animation|Animation]]}}


{{Prototype property|acceleration|[[Types/double|double]]}}
{{Prototype property|acceleration|[[Types/double|double]]}}
Must be != 0 if turning_speed_increases_exponentially_with_projectile_speed is true.


== Optional properties ==
== Optional properties ==
{{Prototype property|animation|[[Types/Animation|Animation]]|optional=true}}


{{Prototype property|rotatable|[[Types/bool|bool]]|true|optional=true}}
{{Prototype property|rotatable|[[Types/bool|bool]]|true|optional=true}}
Whether the animation of the projectile is rotated to match the direction of travel.


{{Prototype property|enable_drawing_with_mask|[[Types/bool|bool]]|false|optional=true}}
{{Prototype property|enable_drawing_with_mask|[[Types/bool|bool]]|false|optional=true}}


{{Prototype property|direction_only|[[Types/bool|bool]]|false|optional=true}}
{{Prototype property|direction_only|[[Types/bool|bool]]|false|optional=true}}
Setting this to true can be used to disable projectile homing behaviour.


{{Prototype property|hit_at_collision_position|[[Types/bool|bool]]|false|optional=true}}
{{Prototype property|hit_at_collision_position|[[Types/bool|bool]]|false|optional=true}}
Line 29: Line 32:
{{Prototype property|max_speed|[[Types/double|double]]|MAX_DOUBLE|optional=true}}
{{Prototype property|max_speed|[[Types/double|double]]|MAX_DOUBLE|optional=true}}
Must be greater than or equal to 0.
Must be greater than or equal to 0.
{{Prototype property|turn_speed|[[Types/float|float]]|1|optional=true}}
Must be greater than or equal to 0.
{{Prototype property|speed_modifier|[[Types/vector|vector]]|<nowiki>{1, 1}</nowiki>|optional=true}}


{{Prototype property|height|[[Types/double|double]]|1|optional=true}}
{{Prototype property|height|[[Types/double|double]]|1|optional=true}}
Line 43: Line 51:


{{Prototype property|hit_collision_mask|[[Types/CollisionMask|CollisionMask]]|<nowiki>{"player-layer", "train-layer"}</nowiki>|optional=true}}
{{Prototype property|hit_collision_mask|[[Types/CollisionMask|CollisionMask]]|<nowiki>{"player-layer", "train-layer"}</nowiki>|optional=true}}
{{Prototype property|turning_speed_increases_exponentially_with_projectile_speed|[[Types/bool|bool]]|false|optional=true}}


{{Prototype property|shadow|[[Types/Animation|Animation]]|optional=true}}
{{Prototype property|shadow|[[Types/Animation|Animation]]|optional=true}}

Latest revision as of 16:08, 7 April 2022

Prototype definitions » PrototypeBase » Prototype/Entity » Prototype/Projectile


Entity with limited lifetime that can hit other entities and has triggers when this happens.


Prototype/Projectile — projectile
acceleration::double
action::Trigger (optional)
animation::Animation (optional)
direction_only::bool (optional)
enable_drawing_with_mask::bool (optional)
final_action::Trigger (optional)
force_condition::ForceCondition (optional)
height::double (optional)
hit_at_collision_position::bool (optional)
hit_collision_mask::CollisionMask (optional)
light::LightDefinition (optional)
max_speed::double (optional)
piercing_damage::float (optional)
rotatable::bool (optional)
shadow::Animation (optional)
smoke::Array of SmokeSource (optional)
speed_modifier::vector (optional)
turn_speed::float (optional)
turning_speed_increases_exponentially_with_projectile_speed::bool (optional)
Inherited from Prototype/Entity
icons, icon, icon_size (IconSpecification)::IconSpecification
additional_pastable_entities::table of string (optional)
alert_icon_scale::float (optional)
alert_icon_shift::vector (optional)
allow_copy_paste::bool (optional)
autoplace::AutoplaceSpecification (optional)
build_base_evolution_requirement::double (optional)
build_grid_size::uint8 (optional)
build_sound::Sound (optional)
close_sound::Sound (optional)
collision_box::BoundingBox (optional)
collision_mask::CollisionMask (optional)
created_effect::Trigger (optional)
created_smoke::CreateTrivialSmokeEffectItem (optional)
drawing_box::BoundingBox (optional)
emissions_per_second::double (optional)
enemy_map_color::Color (optional)
fast_replaceable_group::string (optional)
flags::EntityPrototypeFlags (optional)
friendly_map_color::Color (optional)
hit_visualization_box::BoundingBox (optional)
map_color::Color (optional)
map_generator_bounding_box::BoundingBox (optional)
minable::MinableProperties (optional)
mined_sound::Sound (optional)
mining_sound::Sound (optional)
next_upgrade::string (optional)
open_sound::Sound (optional)
placeable_by::ItemToPlace or table of ItemToPlace (optional)
protected_from_tile_building::bool (optional)
radius_visualisation_specification::RadiusVisualisationSpecification (optional)
remains_when_mined::string or table of string (optional)
remove_decoratives::string (optional)
rotated_sound::Sound (optional)
selectable_in_game::bool (optional)
selection_box::BoundingBox (optional)
selection_priority::uint8 (optional)
shooting_cursor_size::double (optional)
sticker_box::BoundingBox (optional)
subgroup::string (optional)
tile_height::uint32 (optional)
tile_width::uint32 (optional)
trigger_target_mask::TriggerTargetMask (optional)
vehicle_impact_sound::Sound (optional)
water_reflection::WaterReflectionDefinition (optional)
working_sound::WorkingSound (optional)
Inherited from PrototypeBase
name::string
type::string
localised_description::LocalisedString (optional)
localised_name::LocalisedString (optional)
order::Order (optional)

Mandatory properties

This prototype inherits all the properties from Prototype/Entity.

acceleration

Type: double
Must be != 0 if turning_speed_increases_exponentially_with_projectile_speed is true.

Optional properties

animation

Type: Animation

rotatable

Type: bool
Default: true
Whether the animation of the projectile is rotated to match the direction of travel.

enable_drawing_with_mask

Type: bool
Default: false

direction_only

Type: bool
Default: false
Setting this to true can be used to disable projectile homing behaviour.

hit_at_collision_position

Type: bool
Default: false
When true the entity is hit at the position on its collision box the projectile first collides with. When false the entity is hit at its own position.

force_condition

Type: ForceCondition
Default: "all"

piercing_damage

Type: float
Default: 0
Whenever an entity is hit by the projectile, this number gets reduced by the health of the entity. If the number is then below 0, the final_action is applied and the projectile destroyed. Otherwise, the projectile simply continues to its destination.

max_speed

Type: double
Default: MAX_DOUBLE
Must be greater than or equal to 0.

turn_speed

Type: float
Default: 1
Must be greater than or equal to 0.

speed_modifier

Type: vector
Default: {1, 1}

height

Type: double
Default: 1

action

Type: Trigger
Executed when the projectile hits something.

final_action

Type: Trigger
Executed when the projectile hits something, after action and only if the entity that was hit was destroyed. The projectile is destroyed right after the final_action.

light

Type: LightDefinition

smoke

Type: Array of SmokeSource

hit_collision_mask

Type: CollisionMask
Default: {"player-layer", "train-layer"}

turning_speed_increases_exponentially_with_projectile_speed

Type: bool
Default: false

shadow

Type: Animation