269 lines
8.3 KiB
XML
269 lines
8.3 KiB
XML
|
<Entity tags="enemy,mortal,hittable,homing_target,teleportable_NOT,sampo_or_boss,boss_centipede,polymorphable_NOT,boss,necrobot_NOT,glue_NOT" name="$animal_boss_centipede">
|
||
|
<ItemChestComponent level="4" enemy_drop="1" > </ItemChestComponent>
|
||
|
|
||
|
<!-- keeps the streaming alive -->
|
||
|
<StreamingKeepAliveComponent _tags="disabled_at_start" />
|
||
|
|
||
|
<!-- art - main body ---------------------- -->
|
||
|
|
||
|
|
||
|
<SpriteComponent
|
||
|
_tags="character"
|
||
|
image_file="data/entities/animals/boss_centipede/body.xml"
|
||
|
offset_x="0"
|
||
|
offset_y="0"
|
||
|
z_index="0.9"
|
||
|
>
|
||
|
</SpriteComponent>
|
||
|
|
||
|
<!-- AI ---------------------- -->
|
||
|
|
||
|
<LimbBossComponent
|
||
|
state="1">
|
||
|
</LimbBossComponent>
|
||
|
|
||
|
<LuaComponent
|
||
|
_tags="enabled_at_start"
|
||
|
script_source_file="data/entities/animals/boss_centipede/boss_centipede_before_fight.lua"
|
||
|
vm_type="ONE_PER_COMPONENT_INSTANCE"
|
||
|
enable_coroutines="1"
|
||
|
execute_on_added="1"
|
||
|
execute_every_n_frame="-1"
|
||
|
execute_times="1"
|
||
|
>
|
||
|
</LuaComponent>
|
||
|
|
||
|
<LuaComponent
|
||
|
_enabled="0"
|
||
|
_tags="disabled_at_start"
|
||
|
script_source_file="data/entities/animals/boss_centipede/boss_centipede_update.lua"
|
||
|
vm_type="ONE_PER_COMPONENT_INSTANCE"
|
||
|
enable_coroutines="1"
|
||
|
execute_on_added="1"
|
||
|
execute_every_n_frame="-1"
|
||
|
execute_times="1"
|
||
|
>
|
||
|
</LuaComponent>
|
||
|
|
||
|
<LuaComponent
|
||
|
_tags="testcheck"
|
||
|
script_source_file="data/entities/animals/boss_centipede/testcheck.lua"
|
||
|
execute_every_n_frame="5"
|
||
|
>
|
||
|
</LuaComponent>
|
||
|
|
||
|
<PathFindingComponent
|
||
|
can_dive="1"
|
||
|
can_fly="1"
|
||
|
can_jump="0"
|
||
|
can_swim_on_surface="1"
|
||
|
can_walk="0"
|
||
|
cost_of_flying="500"
|
||
|
distance_to_reach_node_x="20"
|
||
|
distance_to_reach_node_y="20"
|
||
|
frames_between_searches="20"
|
||
|
frames_to_get_stuck="120"
|
||
|
initial_jump_lob="1"
|
||
|
initial_jump_max_distance_x="100"
|
||
|
initial_jump_max_distance_y="60"
|
||
|
iterations_max_no_goal="9999999"
|
||
|
iterations_max_with_goal="145000"
|
||
|
jump_speed="200"
|
||
|
max_jump_distance_from_camera="400"
|
||
|
search_depth_max_no_goal="120"
|
||
|
search_depth_max_with_goal="145000"
|
||
|
y_walking_compensation="8" >
|
||
|
</PathFindingComponent>
|
||
|
|
||
|
<PathFindingGridMarkerComponent
|
||
|
_enabled="1"
|
||
|
marker_offset_x="0"
|
||
|
marker_offset_y="-6"
|
||
|
marker_work_flag="16" >
|
||
|
</PathFindingGridMarkerComponent>
|
||
|
|
||
|
|
||
|
<!-- physics ---------------------- -->
|
||
|
|
||
|
<PhysicsAIComponent
|
||
|
_enabled="0"
|
||
|
_tags="disabled_at_start"
|
||
|
target_vec_max_len="15.0"
|
||
|
force_coeff="14.0"
|
||
|
force_balancing_coeff="0.8"
|
||
|
force_max="160"
|
||
|
torque_coeff="50"
|
||
|
torque_balancing_coeff="0.8"
|
||
|
torque_max="50.0"
|
||
|
damage_deactivation_probability="0"
|
||
|
damage_deactivation_time_min="60"
|
||
|
damage_deactivation_time_max="120"
|
||
|
free_if_static="1"
|
||
|
>
|
||
|
</PhysicsAIComponent>
|
||
|
|
||
|
<PhysicsBodyComponent
|
||
|
force_add_update_areas="1"
|
||
|
allow_sleep="1"
|
||
|
angular_damping="0.02"
|
||
|
fixed_rotation="1"
|
||
|
is_bullet="0"
|
||
|
linear_damping="0"
|
||
|
is_static="1"
|
||
|
>
|
||
|
</PhysicsBodyComponent>
|
||
|
|
||
|
<PhysicsShapeComponent
|
||
|
is_circle="1"
|
||
|
radius_x="16"
|
||
|
radius_y="16"
|
||
|
friction="0.0"
|
||
|
restitution="0.3" >
|
||
|
</PhysicsShapeComponent>
|
||
|
|
||
|
<CellEaterComponent
|
||
|
_enabled="1"
|
||
|
radius="0"
|
||
|
eat_probability="0"
|
||
|
>
|
||
|
</CellEaterComponent>
|
||
|
|
||
|
|
||
|
<!-- damage ---------------------- -->
|
||
|
|
||
|
<DamageModelComponent
|
||
|
hp="56.5"
|
||
|
wait_for_kill_flag_on_death="1"
|
||
|
air_needed="0"
|
||
|
falling_damages="0"
|
||
|
fire_damage_amount="0.1"
|
||
|
fire_probability_of_ignition="0"
|
||
|
blood_material="slime_green"
|
||
|
blood_spray_material="slime_green"
|
||
|
is_on_fire="0"
|
||
|
materials_damage="1"
|
||
|
materials_how_much_damage="0.1"
|
||
|
materials_that_damage="acid"
|
||
|
ragdoll_filenames_file=""
|
||
|
ragdoll_material="meat_slime_green"
|
||
|
ragdoll_offset_y="-6"
|
||
|
ragdollify_child_entity_sprites="1"
|
||
|
blood_sprite_directional="data/particles/bloodsplatters/bloodsplatter_directional_green_$[1-3].xml"
|
||
|
blood_sprite_large="data/particles/bloodsplatters/bloodsplatter_green_$[1-3].xml"
|
||
|
>
|
||
|
<damage_multipliers
|
||
|
melee="2.0"
|
||
|
projectile="0.3"
|
||
|
explosion="0.2"
|
||
|
electricity="0.1"
|
||
|
fire="0.1"
|
||
|
slice="1.0"
|
||
|
ice="0.1"
|
||
|
>
|
||
|
</damage_multipliers>
|
||
|
</DamageModelComponent>
|
||
|
|
||
|
<GenomeDataComponent
|
||
|
herd_id="slimes" >
|
||
|
</GenomeDataComponent>
|
||
|
|
||
|
<!-- center hitbox (weak spot) -->
|
||
|
<HitboxComponent
|
||
|
_enabled="0"
|
||
|
_tags="disabled_at_start"
|
||
|
aabb_min_x="-25"
|
||
|
aabb_max_x="25"
|
||
|
aabb_min_y="-25"
|
||
|
aabb_max_y="25"
|
||
|
damage_multiplier="1.0" >
|
||
|
</HitboxComponent>
|
||
|
|
||
|
<!-- etc ---------------------- -->
|
||
|
|
||
|
<AudioComponent
|
||
|
file="data/audio/Desktop/animals.bank"
|
||
|
event_root="animals" >
|
||
|
</AudioComponent>
|
||
|
|
||
|
<AudioComponent
|
||
|
file="data/audio/Desktop/animals.bank"
|
||
|
event_root="animals/boss_centipede" >
|
||
|
</AudioComponent>
|
||
|
|
||
|
<AudioLoopComponent
|
||
|
_tags="sound_prebattle_tinkering"
|
||
|
file="data/audio/Desktop/animals.bank"
|
||
|
event_name="animals/boss_centipede/prebattle_tinkering_loop"
|
||
|
volume_autofade_speed="0.25"
|
||
|
></AudioLoopComponent>
|
||
|
|
||
|
<AudioLoopComponent
|
||
|
file="data/audio/Desktop/animals.bank"
|
||
|
event_name="animals/boss_centipede/movement_loop"
|
||
|
set_speed_parameter="1"
|
||
|
auto_play="1">
|
||
|
</AudioLoopComponent>
|
||
|
|
||
|
<SpriteAnimatorComponent
|
||
|
rotate_to_surface_normal="0"
|
||
|
target_sprite_comp_name="character" >
|
||
|
</SpriteAnimatorComponent>
|
||
|
|
||
|
<VariableStorageComponent
|
||
|
name="initialized"
|
||
|
value_bool="0"
|
||
|
>
|
||
|
</VariableStorageComponent>
|
||
|
|
||
|
<VariableStorageComponent
|
||
|
name="orbcount"
|
||
|
value_int="0"
|
||
|
>
|
||
|
</VariableStorageComponent>
|
||
|
|
||
|
<LuaComponent
|
||
|
script_death="data/entities/animals/boss_centipede/death_check.lua"
|
||
|
execute_every_n_frame="-1"
|
||
|
>
|
||
|
</LuaComponent>
|
||
|
|
||
|
<!-- limbs ---------------------- -->
|
||
|
|
||
|
<Entity> <Base file="data/entities/animals/boss_centipede/limbs/limb_long.xml" /> </Entity>
|
||
|
<Entity> <Base file="data/entities/animals/boss_centipede/limbs/limb_long.xml" /> </Entity>
|
||
|
<Entity> <Base file="data/entities/animals/boss_centipede/limbs/limb_long.xml" /> </Entity>
|
||
|
<Entity> <Base file="data/entities/animals/boss_centipede/limbs/limb_long.xml" /> </Entity>
|
||
|
<Entity> <Base file="data/entities/animals/boss_centipede/limbs/limb_long.xml" /> </Entity>
|
||
|
<Entity> <Base file="data/entities/animals/boss_centipede/limbs/limb_long.xml" /> </Entity>
|
||
|
<Entity> <Base file="data/entities/animals/boss_centipede/limbs/limb_long.xml" /> </Entity>
|
||
|
<Entity> <Base file="data/entities/animals/boss_centipede/limbs/limb_long.xml" /> </Entity>
|
||
|
<Entity> <Base file="data/entities/animals/boss_centipede/limbs/limb_long.xml" /> </Entity>
|
||
|
<Entity> <Base file="data/entities/animals/boss_centipede/limbs/limb_long.xml" /> </Entity>
|
||
|
|
||
|
<Entity> <Base file="data/entities/animals/boss_centipede/tail/tail.xml"> <InheritTransformComponent><Transform position.x="0" position.y="24" ></Transform></InheritTransformComponent> </Base> </Entity>
|
||
|
|
||
|
<MusicEnergyAffectorComponent
|
||
|
_enabled="0"
|
||
|
_tags="disabled_at_start"
|
||
|
energy_target="1.0"
|
||
|
fade_range="2000.0"
|
||
|
fog_of_war_threshold="255"
|
||
|
>
|
||
|
</MusicEnergyAffectorComponent>
|
||
|
|
||
|
<Entity> <Base file="data/entities/animals/boss_centipede/verlet_chains/verlet_vine.xml"> <InheritTransformComponent><Transform position.x="-12" position.y="12" ></Transform></InheritTransformComponent> </Base> </Entity>
|
||
|
<Entity> <Base file="data/entities/animals/boss_centipede/verlet_chains/verlet_vine_short.xml"> <InheritTransformComponent><Transform position.x="12" position.y="-6" ></Transform></InheritTransformComponent> </Base> </Entity>
|
||
|
<Entity> <Base file="data/entities/animals/boss_centipede/verlet_chains/verlet_vine.xml"> <InheritTransformComponent><Transform position.x="24" position.y="-12" ></Transform></InheritTransformComponent> </Base> </Entity>
|
||
|
<Entity> <Base file="data/entities/animals/boss_centipede/verlet_chains/verlet_vine_short.xml"> <InheritTransformComponent><Transform position.x="-24" position.y="16" ></Transform></InheritTransformComponent> </Base> </Entity>
|
||
|
<Entity> <Base file="data/entities/animals/boss_centipede/verlet_chains/verlet_vine_long.xml"> <InheritTransformComponent><Transform position.x="0" position.y="-2" ></Transform></InheritTransformComponent> </Base> </Entity>
|
||
|
<Entity> <Base file="data/entities/animals/boss_centipede/verlet_chains/verlet_vine_short.xml"> <InheritTransformComponent><Transform position.x="-8" position.y="-16" ></Transform></InheritTransformComponent> </Base> </Entity>
|
||
|
<Entity> <Base file="data/entities/animals/boss_centipede/verlet_chains/verlet_vine.xml"> <InheritTransformComponent><Transform position.x="8" position.y="-20" ></Transform></InheritTransformComponent> </Base> </Entity>
|
||
|
|
||
|
<Entity tags="protection">
|
||
|
<GameEffectComponent
|
||
|
effect="PROTECTION_ALL"
|
||
|
>
|
||
|
</GameEffectComponent>
|
||
|
</Entity>
|
||
|
|
||
|
</Entity>
|