Prototype/Unit: Difference between revisions

From Official Factorio Wiki
Jump to navigation Jump to search
(idle animation is not used, and wont be loaded in 0.17.49)
(better description what this prototype type is)
 
(7 intermediate revisions by the same user not shown)
Line 1: Line 1:
==Basics==
{{Prototype parent|Prototype/EntityWithOwner}}
Prototype type: '''unit'''
Entity that moves around and attacks players, for example [[enemies#Creatures|biters and spitters]].


Entity that attacks player based on pollution value. Extends the [[Prototype/EntityWithHealth]]
{{Prototype TOC|unit}}


== Usage in base==
== Usage in base==
Line 8: Line 8:


== Mandatory properties ==
== Mandatory properties ==
This prototype inherits all the properties from [[Prototype/EntityWithHealth]].
This prototype inherits all the properties from [[Prototype/EntityWithOwner]].


=== run_animation ===
{{Prototype property|run_animation|[[Types/RotatedAnimation|RotatedAnimation]]}}
'''Type''': [[Types/RotatedAnimation]]
 
=== attack_parameters ===
'''Type''': [[Types/AttackParameters]]


{{Prototype property|attack_parameters|[[Types/AttackParameters|AttackParameters]]}}
Requires animation in attack_parameters. Requires ammo_type in attack_parameters.
Requires animation in attack_parameters. Requires ammo_type in attack_parameters.


=== movement_speed ===
{{Prototype property|movement_speed|[[Types/float|float]]}}
'''Type''': [[Types/float]]
Movement speed of the unit in the world, in tiles per tick.
 
Must be equal to or greater than 0.
Must be equal to or greater than 0.


=== distance_per_frame ===
{{Prototype property|distance_per_frame|[[Types/float|float]]}}
'''Type''': [[Types/float]]
How fast the <code>run_animation</code> frames are advanced. The animations are advanced animation_speed frames per <code>distance_per_frame</code> that the unit moves.


=== pollution_to_join_attack ===
frames_advanced = (distance_moved ÷ distance_per_frame) * animation_speed
'''Type''': [[Types/float]]


{{Prototype property|pollution_to_join_attack|[[Types/float|float]]}}
The amount of pollution that has to be absorbed by the unit's spawner before the unit will leave the spawner and attack the source of the pollution.
The amount of pollution that has to be absorbed by the unit's spawner before the unit will leave the spawner and attack the source of the pollution.


=== distraction_cooldown ===
{{Prototype property|distraction_cooldown|[[Types/uint32|uint32]]}}
'''Type''': [[Types/uint32]]
 
=== vision_distance ===
'''Type''': [[Types/double]]


{{Prototype property|vision_distance|[[Types/double|double]]}}
Max is 100.
Max is 100.


Note: Setting to 50 or above can lead to undocumented behavior of individual units creating groups on their own when attacking or being attacked.
Note: Setting to 50 or above can lead to undocumented behavior of individual units creating groups on their own when attacking or being attacked.
=== ai_settings ===
'''Type''': [[Types/UnitAISettings]]


== Optional properties ==
== Optional properties ==


=== rotation_speed ===
{{Prototype property|rotation_speed|[[Types/float|float]]|0.025|optional=true}}
'''Type''': [[Types/double]]
 
'''Default''': 0.025
 
=== dying_sound ===
'''Type''': [[Types/Sound]]


{{Prototype property|dying_sound|[[Types/Sound|Sound]]|optional=true}}
The sound file to play when entity dies.
The sound file to play when entity dies.


=== min_pursue_time ===
{{Prototype property|min_pursue_time|[[Types/uint32|uint32]]|10 * 60|optional=true}}
'''Type''': [[Types/uint32]]
 
'''Default''': 10 * 60
 
=== has_belt_immunity ===
'''Type''': [[Types/bool]]
 
'''Default''': false


{{Prototype property|has_belt_immunity|[[Types/bool|bool]]|false|optional=true}}
If the unit is immune to movement by belts.
If the unit is immune to movement by belts.


=== spawning_time_modifier ===
{{Prototype property|spawning_time_modifier|[[Types/double|double]]|1|optional=true}}
'''Type''': [[Types/double]]


'''Default''': 1
{{Prototype property|max_pursue_distance|[[Types/double|double]]|50|optional=true}}


=== max_pursue_distance ===
{{Prototype property|radar_range|[[Types/uint32|uint32]]|0|optional=true}}
'''Type''': [[Types/double]]


'''Default''': 50
{{Prototype property|ai_settings|[[Types/UnitAISettings|UnitAISettings]]|optional=true}}


=== radar_range ===
{{Prototype property|move_while_shooting|[[Types/bool|bool]]|false|optional=true}}
'''Type''': [[Types/uint32]]


'''Default''': 0
{{Prototype property|can_open_gates|[[Types/bool|bool]]|false|optional=true}}


=== move_while_shooting ===
{{Prototype property|affected_by_tiles|[[Types/bool|bool]]|false|optional=true}}
'''Type''': [[Types/bool]]


'''Default''': false
{{Prototype property|render_layer|[[Types/RenderLayer|RenderLayer]]|"object"|optional=true}}


=== can_open_gates ===
{{Prototype property|light|[[Types/LightDefinition|LightDefinition]]|optional=true}}
'''Type''': [[Types/bool]]


'''Default''': false
{{Prototype property|walking_sound|[[Types/Sound|Sound]]|optional=true}}


=== affected_by_tiles ===
{{Prototype property|alternative_attacking_frame_sequence|[[Types/table|table]]|optional=true}}
'''Type''': [[Types/bool]]
Table with the following mandatory properties:


'''Default''': false
* warmup_frame_sequence - Array of [[Types/uint16|uint16]] - Indices of frames from the attack parameter animation.
* warmup2_frame_sequence - Array of [[Types/uint16|uint16]] - Indices of frames from the attack parameter animation.
* attacking_frame_sequence  - Array of [[Types/uint16|uint16]] - Indices of frames from the attack parameter animation.
* cooldown_frame_sequence - Array of [[Types/uint16|uint16]] - Indices of frames from the attack parameter animation.
* prepared_frame_sequence - Array of [[Types/uint16|uint16]] - Indices of frames from the attack parameter animation.
* back_to_walk_frame_sequence - Array of [[Types/uint16|uint16]] - Indices of frames from the attack parameter animation.
* warmup_animation_speed - [[Types/float|float]]
* attacking_animation_speed - [[Types/float|float]]
* cooldown_animation_speed - [[Types/float|float]]
* prepared_animation_speed - [[Types/float|float]]
* back_to_walk_animation_speed - [[Types/float|float]]


=== render_layer ===
{{Prototype property|running_sound_animation_positions|[[Types/table|table]] (array) of [[Types/float|float]]|optional=true}}
'''Type''': [[Types/RenderLayer]]
Ignored if <code>walking_sounds</code> is not defined.
 
'''Default''': "object"
 
=== alternative_attacking_frame_sequence ===
'''Type''': [[Types/table]]
 
Table with the following mandatory properties:


* warmup_frame_sequence - Array of [[Types/float]] - Indices of frames from the attack parameter animation.
== Mandatory values ==
* warmup2_frame_sequence - Array of [[Types/float]] - Indices of frames from the attack parameter animation.
Units have additional requirements for the properties inherited from [[Prototype/EntityWithOwner]]:
* attacking_frame_sequence  - Array of [[Types/float]] - Indices of frames from the attack parameter animation.
* [[Prototype/EntityWithOwner#is_military_target]] must be true.
* cooldown_frame_sequence - Array of [[Types/float]] - Indices of frames from the attack parameter animation.
* [[Prototype/EntityWithOwner#allow_run_time_change_of_is_military_target]] must be false.
* prepared_frame_sequence - Array of [[Types/float]] - Indices of frames from the attack parameter animation.
* back_to_walk_frame_sequence - Array of [[Types/float]] - Indices of frames from the attack parameter animation.
* warmup_animation_speed - [[Types/float]]
* attacking_animation_speed - [[Types/float]]
* cooldown_animation_speed - [[Types/float]]
* prepared_animation_speed - [[Types/float]]
* back_to_walk_animation_speed - [[Types/float]]

Latest revision as of 10:12, 25 February 2022

Prototype definitions » PrototypeBase » Prototype/Entity » Prototype/EntityWithHealth » Prototype/EntityWithOwner » Prototype/Unit


Entity that moves around and attacks players, for example biters and spitters.


Prototype/Unit — unit
attack_parameters::AttackParameters
distance_per_frame::float
distraction_cooldown::uint32
movement_speed::float
pollution_to_join_attack::float
run_animation::RotatedAnimation
vision_distance::double
affected_by_tiles::bool (optional)
ai_settings::UnitAISettings (optional)
alternative_attacking_frame_sequence::table (optional)
can_open_gates::bool (optional)
dying_sound::Sound (optional)
has_belt_immunity::bool (optional)
light::LightDefinition (optional)
max_pursue_distance::double (optional)
min_pursue_time::uint32 (optional)
move_while_shooting::bool (optional)
radar_range::uint32 (optional)
render_layer::RenderLayer (optional)
rotation_speed::float (optional)
running_sound_animation_positions::table (array) of float (optional)
spawning_time_modifier::double (optional)
walking_sound::Sound (optional)
Inherited from Prototype/EntityWithOwner
allow_run_time_change_of_is_military_target::bool (optional)
is_military_target::bool (optional)
Inherited from Prototype/EntityWithHealth
alert_when_damaged::bool (optional)
attack_reaction::AttackReaction (optional)
corpse::string or table of strings (optional)
create_ghost_on_death::bool (optional)
damaged_trigger_effect::TriggerEffect (optional)
dying_explosion::ExplosionDefinition or table of ExplosionDefinition (optional)
dying_trigger_effect::TriggerEffect (optional)
healing_per_tick::float (optional)
hide_resistances::bool (optional)
integration_patch::Sprite4Way (optional)
integration_patch_render_layer::RenderLayer (optional)
loot::Loot (optional)
max_health::float (optional)
random_corpse_variation::bool (optional)
repair_sound::Sound (optional)
repair_speed_modifier::float (optional)
resistances::Resistances (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)

Usage in base

Mandatory properties

This prototype inherits all the properties from Prototype/EntityWithOwner.

run_animation

Type: RotatedAnimation

attack_parameters

Type: AttackParameters
Requires animation in attack_parameters. Requires ammo_type in attack_parameters.

movement_speed

Type: float
Movement speed of the unit in the world, in tiles per tick. Must be equal to or greater than 0.

distance_per_frame

Type: float
How fast the run_animation frames are advanced. The animations are advanced animation_speed frames per distance_per_frame that the unit moves.

frames_advanced = (distance_moved ÷ distance_per_frame) * animation_speed

pollution_to_join_attack

Type: float
The amount of pollution that has to be absorbed by the unit's spawner before the unit will leave the spawner and attack the source of the pollution.

distraction_cooldown

Type: uint32

vision_distance

Type: double
Max is 100.

Note: Setting to 50 or above can lead to undocumented behavior of individual units creating groups on their own when attacking or being attacked.

Optional properties

rotation_speed

Type: float
Default: 0.025

dying_sound

Type: Sound
The sound file to play when entity dies.

min_pursue_time

Type: uint32
Default: 10 * 60

has_belt_immunity

Type: bool
Default: false
If the unit is immune to movement by belts.

spawning_time_modifier

Type: double
Default: 1

max_pursue_distance

Type: double
Default: 50

radar_range

Type: uint32
Default: 0

ai_settings

Type: UnitAISettings

move_while_shooting

Type: bool
Default: false

can_open_gates

Type: bool
Default: false

affected_by_tiles

Type: bool
Default: false

render_layer

Type: RenderLayer
Default: "object"

light

Type: LightDefinition

walking_sound

Type: Sound

alternative_attacking_frame_sequence

Type: table
Table with the following mandatory properties:

  • warmup_frame_sequence - Array of uint16 - Indices of frames from the attack parameter animation.
  • warmup2_frame_sequence - Array of uint16 - Indices of frames from the attack parameter animation.
  • attacking_frame_sequence - Array of uint16 - Indices of frames from the attack parameter animation.
  • cooldown_frame_sequence - Array of uint16 - Indices of frames from the attack parameter animation.
  • prepared_frame_sequence - Array of uint16 - Indices of frames from the attack parameter animation.
  • back_to_walk_frame_sequence - Array of uint16 - Indices of frames from the attack parameter animation.
  • warmup_animation_speed - float
  • attacking_animation_speed - float
  • cooldown_animation_speed - float
  • prepared_animation_speed - float
  • back_to_walk_animation_speed - float

running_sound_animation_positions

Type: table (array) of float
Ignored if walking_sounds is not defined.

Mandatory values

Units have additional requirements for the properties inherited from Prototype/EntityWithOwner: