
[m_poltergeist_e]:monster_base
GroupControlSection		= spawn_group
SpaceRestrictionSection	= space_restrictor,zone_mosquito_bald,zone_radioactive
$spawn					= "monsters\old\poltergeist"        ; option for Level Editor
$npc					= on                        ; option for Level Editor
;$prefetch				= 16

class				= SM_POLTR		; AI class
visual				= monsters\poltergeist\poltergeist
corpse_visual		= monsters\poltergeist\poltergeyst_dead
icon				= ui_npc_monster_poltergeist

species				= poltergeist

script_binding		= bind_monster.bind

ef_creature_type	= 5			; option for evaluation functions
ef_weapon_type		= 12
ef_detector_type	= 1
panic_threshold		= 0.1

bone_torso			= bip01_spine1
bone_head			= bip01_head
bone_fire			= bip01_head

parts_cut_count		= 150
parts_data			= polter

type				= flamer

;------------------------------------------------------------------------
; Offline Alife
;------------------------------------------------------------------------
Scheduled					= on			; option for ALife Simulator
Human						= off			; option for ALife Simulator
Health						= 250			; option for ALife Simulator
MinSpeed					= 1.0			; option for ALife Simulator
MaxSpeed					= 1.5			; option for ALife Simulator
going_speed					= 2.0			; option for ALife Simulator
current_level_going_speed	= 1				; option for ALife Simulator
MaxHealthValue				= 150			; range [0..200]

;---------------------------------------------------------------------
; Physics
;---------------------------------------------------------------------
ph_box0_center				= 0.0,  0.2,  0.0
ph_box0_size				= 0.35, 0.4,  0.35
ph_box1_center				= 0.0,  0.2,  0.0
ph_box1_size				= 0.35, 0.4,  0.35
ph_crash_speed_min			= 10
ph_crash_speed_max			= 30
ph_collision_damage_factor	= 0.1
ph_mass						= 50		; also it's the food

destroyed_vis_name			= physics\dead_body\skelet_crash

;----------------------------------------------------------------------------
ph_skeleton_collision_enabled	= true

;----------------------------------------------------------------------------
; Movement::Velocities & Acceleration
;----------------------------------------------------------------------------
; speed factors            linear | angular_real | angular_path | min |  max
Velocity_Stand				= 0,        5.0,            5.0,        0.2,    0.5
Velocity_WalkFwdNormal		= 1.7,        2.0,            2.0,        0.2,    2.0
Velocity_WalkFwdDamaged		= 1.5,        3.0,            3.0,        0.8,    2.0
Velocity_RunFwdNormal		= 4.0,        3.0,            3.0,        0.4,    1.0
Velocity_RunFwdDamaged		= 2.5,      3.2,            3.2,        0.4,    1
Velocity_Drag				= 0.6,        3.0,            3.0,        1,        1
Velocity_Steal				= 1.5,        3.0,            3.0,        1,        1

; Speed factors while invisible
Velocity_Invisible_Linear	= 5.0
Velocity_Invisible_Angular	= 3.5

; acceleration
Accel_Calm				= 2.5
Accel_Aggressive		= 3.0

;--------------------------------------------------------------------------
; Attack parameters
;--------------------------------------------------------------------------
;attack parameters
MinAttackDist			= 0.5
MaxAttackDist			= 2.0
as_min_dist				= 0.1
as_step					= 0.3

;attack_effector			= m_poltergeist_attack_effector
attack_params			= m_poltergeist_attack_params

hit_type				= strike

;-------------------------------------------------------------------------
; Entity Conditions
;-------------------------------------------------------------------------
satiety_v				= 0.00005			;скорость уменьшения сытости со временем
radiation_v				= 0.00001			;скорость уменьшения радиации
;satiety_power_v		= 0.005				;увеличение силы при уменьшении сытости
;satiety_health_v		= 0.005				;увеличение здоровья при уменьшении сытости
radiation_health_v		= 0.01				;уменьшение здоровья при воздействии радиации
morale_v				= 0.01				;скорость восстановления морали
health_hit_part			= 1.0				;процент хита, уходящий на отнимание здоровья
power_hit_part			= 1.0				;процент хита, уходящий на отнимание силы
psy_health_v			= 0.1				;скорость восстановления psy-здоровья
health_restore_v		= 0.0006			;скорость восстановления здоровья

immunities_sect			= poltergeist_immunities
protections_sect		= poltergeist_protections
hit_factor_stalker		= 0.25
hit_slowdown			= 4.5, 1.75

;открытые раны
bleeding_v				= 0			;потеря крови при номинальной ране в секунду
wound_incarnation_v		= 0.1		;заживление ран в игровую секунду
min_wound_size			= 0.1

;Eat settings
eat_freq				= 1.0		; частота укусов в сек
eat_slice				= 0.01		; увеличение сытости при 1 укусе
eat_health				= 0.003		; увеличение здоровья при 1 укусе
eat_slice_weight		= 40		; уменьшение еды у трупа
satiety_threshold		= 0.5		; below this value monster fill hunger

;-------------------------------------------------------------------------
; Bullet reflection
;-------------------------------------------------------------------------
bullet_reflect_speed		= 0.6	; multiplier
bullet_reflect_deviation	= 10	; degrees

;-------------------------------------------------------------------------
; Kinetic blast
;-------------------------------------------------------------------------

;-------------------------------------------------------------------------
; Movement hit
;-------------------------------------------------------------------------
movement_hit_type   = telepatic
movement_hit_power   = 0.2
movement_hit_impulse   = 0.1
movement_hit_radius   = 1.5

;-------------------------------------------------------------------------
; Energy
;-------------------------------------------------------------------------
Invisible_Energy_Restore_Velocity		= 0.1
Invisible_Energy_Decline_Velocity		= 0.0
Invisible_Energy_Critical_Value			= 0.01
Invisible_Energy_Activate_Value			= 0.99
Invisible_Energy_Aggr_Restore_Velocity	= 0.1

;---------------------------------------------------------
; Sounds and sound parameters
;---------------------------------------------------------
sound_idle				= monsters\biting\def_
sound_eat				= monsters\biting\def_
sound_aggressive		= monsters\biting\def_
sound_attack_hit		= monsters\biting\def_
sound_take_damage		= monsters\biting\def_
sound_die				= monsters\biting\def_
sound_threaten			= monsters\biting\def_
sound_steal				= monsters\biting\def_
sound_panic				= monsters\biting\def_
;sound_growling			= monsters\biting\def_
sound_die_in_anomaly	= monsters\biting\def_

killer_clsids			= ZS_AMEBA,ZS_HAIRS,ZS_MBALD,ZS_MINEF,ZS_GALAN,ZS_MINCE,ZS_GRAVI,ZS_CAMPF,ZS_TORRD


idle_sound_delay		= 0
eat_sound_delay			= 0
attack_sound_delay		= 0

sound_distant_idle			= monsters\biting\def_
distant_idle_sound_delay	= 80000
distant_idle_sound_range	= 100.0

SoundThreshold		= 0.06		; range [0..1]
max_hear_dist		= 50
;-------------------------------------------------------------------------
; Morale
;-------------------------------------------------------------------------
Morale_Hit_Quant				= 0.01
Morale_Attack_Success_Quant		= 0.3
Morale_Take_Heart_Speed			= 0.1
Morale_Despondent_Speed			= 0.1
Morale_Stable_Speed				= 0.3
Morale_Despondent_Threashold	= 0.5

;-------------------------------------------------------------------------
; Damages
;-------------------------------------------------------------------------
DamagedThreshold	= 0.4
damage				= m_poltergeist_damage

critical_wound_threshold		= -1
critical_wound_decrease_quant	= 0
;-------------------------------------------------------------------------
; Other Stuff (refactoring needed)
;-------------------------------------------------------------------------

DayTime_Begin		= 0
DayTime_End			= 21

distance_to_corpse	= 1.8

use_squad_behavior	= false

particles_sect		= particles_corpse_generic
terrain				= poltergeist_terrain

material			= creatures\large	;objects\bullet

step_params			= m_poltergeist_step_params
LegsCount			= 2


;---------------------------
Particles_Damage		= monsters\polter_damage
Particles_Death			= monsters\polter_death
Particles_Idle			= monsters\polter_idle
Particles_Hidden		= monsters\polter_linza
;---------------------------

rank			= 401
spec_rank		= normal

;-------------------------------------------------------------------------
; Vision
;-------------------------------------------------------------------------
eye_fov				= 100
eye_range			= 40
;eye_rotation		= 0, 0.4
use_eye_direction	= false

vision_free_section			= poltergeist_vision_free
vision_danger_section		= poltergeist_vision_danger

; ЗНАЧЕНИЯ visibility_threshold ДОЛЖНЫ БЫТЬ РАВНЫ для денжера и фри,
; иначе возникают артефакты с потерей видимости при переходе от денжера во фри.

[poltergeist_vision_free]
min_view_distance   		= 0.8				; коэффициент, который множится на eye_range, в зависимости от угла
max_view_distance	 		= 1.0				; коэффициент, который множится на eye_range, в зависимости от угла
visibility_threshold	 	= 100.0				; значение, при достижении суммой которого объект считается видимым
always_visible_distance 	= 0.5
time_quant					= 0.001
decrease_value				= 0.01				; значение, на которое уменьшается вес, если объект попал в фрустум, но отсёкся по каким-то причинам
velocity_factor		     	= 0.5
luminocity_factor			= 0.5 				; фактор освещения (только для Актёра)
transparency_threshold		= 0.25

[poltergeist_vision_danger]
min_view_distance   		= 0.8				; коэффициент, который множится на eye_range, в зависимости от угла
max_view_distance	 		= 1.0				; коэффициент, который множится на eye_range, в зависимости от угла
visibility_threshold	 	= 100.0				; значение, при достижении суммой которого объект считается видимым
always_visible_distance 	= 0.5
time_quant					= 0.001
decrease_value				= 0.01				; значение, на которое уменьшается вес, если объект попал в фрустум, но отсёкся по каким-то причинам
velocity_factor		     	= 0.5
luminocity_factor			= 0.5 				; фактор освещения (только для Актёра)
transparency_threshold		= 0.25

[poltergeist_protections]
skin_armor = 1.1
hit_fraction_monster = 0.3

[m_Poltergeist_damage]
;bone_name         = <hit_scale>,-1,<wound_scale>
;<hit_scale>    - коэфф. изменения хита (уменьшения здоровья)
;<wound_scale>    - коэфф. изменения величины открытой раны

default                = 1.0,    -1,    0.1

bip01_pelvis         = 1.0, -1, 0.2
bip01_spine         = 1.0, -1, 0.2
bip01_spine1         = 1.0, -1, 0.2
bip01_neck             = 1.0, -1, 0.5
bip01_head             = 2.0, -1, 0.3
[m_poltergeist_attack_params]
;---------------------------------------------------------------------------------------------------------------------------------------------
;    anim            | time[0..1] | hit_power | impulse | impulse_dir (x,y,z)  |    Field of hit_test  (left,right, top, bottom) |    Test Dist
;---------------------------------------------------------------------------------------------------------------------------------------------
;Left hand Strike
stand_attack_0    =          0.30,        0.20,            50,        0.0, 1.0, 1.0,         -1.6, 1.6, -1.6, 1.6,                              3.5
;Left hand Strike2
stand_attack_1    =          0.30,        0.15,            50,        0.0, 1.0, 1.0,         -1.6, 1.6, -1.6, 1.6,                              3.5

[m_poltergeist_attack_effector]
duality_h        = 0.01
duality_v        = 0.01
blur            = 0.01
gray            = 0.5
noise_intensity = 0.0
noise_grain        = 1
noise_fps        = 30
color_base        = 0.65,0.15,0.1
color_gray        = 0.333,0.333,0.333
color_add        = 0,0,0
time            = 0.3
time_attack        = 0.05        ; fade in
time_release     = 0.25        ; fade out

; camera effects
ce_time                = 0.45 ;time
ce_amplitude        = -15.0
ce_period_number    = 1.5 ;2.0
ce_power            = 1.5 ;0.7 ; power

[m_poltergeist_step_params]                left             right            right           left
;------------------------------------------------------------------------------------------------------------------
;    anim                    cycles |    time1 | power1 |    time2 | power2 | time3 | power3 | time4     | power4 |
;-----------------------------------------------------------------------------------------------------------------
stand_walk_fwd_0        =       1,        0.1,      1,          0.34,    1,         0.6,     1,            0.84,        1
;stand_walk_fwd_dmg_0    =       1,        0.2,      1,          0.25,    1,         0.5,     1,            0.7,        1
;stand_run_0                =        1,        0.1,      1,          0.3,     1,         0.5,     1,            0.55,        1
;stand_run_dmg_0            =        1,        0.2,      1,          0.25,    1,         0.7,     1,            0.75,        1

;===========================================================================
; TERRAIN
;===========================================================================
[poltergeist_terrain]
	255,255,255,255		;255,000,255,255

;===========================================================================
; IMMUNITIES
;===========================================================================
[poltergeist_immunities]
burn_immunity          = 0.4
strike_immunity        = 0.1
shock_immunity         = 1.0
wound_immunity         = 0.3
radiation_immunity     = 0.0
telepatic_immunity     = 0.0
chemical_burn_immunity = 0.2
explosion_immunity     = 0.5
fire_wound_immunity    = 0.2	;0.0

; Karlan: m_poltergeist_normal - абстрактная секция! спавнить нельзя!
[m_poltergeist_normal]:m_poltergeist_e
$spawn               = "monsters\old\poltergeist_normal"
spec_rank            = normal
rank                = 401

;===========================================================================
; TELE
;===========================================================================

[m_poltergeist_normal_tele]:m_poltergeist_normal
$spawn				= "monsters\poltergeists\poltergeist_normal_tele"

type				= telekinetic


detection_pp_effector_name  =	;poltergeist_detection_effector
detection_near_range_factor	=	2
detection_far_range_factor	=	0.25
detection_far_range			=	24
detection_speed_factor		=	4.0
detection_loose_speed		=	2.0
detection_success_level		=	10.0
detection_max_level			=	15.0
detection_fly_around_level	=	5.0
detection_fly_around_distance	= 30.0
detection_fly_around_change_direction_time	= 5 ; sec

Tele_Fly_Velocity               = 35
Tele_Min_Damage                 = 0.3
Tele_Max_Damage                 = 0.8
Tele_Damage_Factor              = 1.2

Tele_Find_Radius                = 11
Tele_Object_Min_Mass            = 14
Tele_Object_Max_Mass            = 500
Tele_Object_Count               = 3;7
Tele_Hold_Time                  = 2700
Tele_Wait_Time                  = 3300
Tele_Delay_Between_Objects_Time = 1000
Tele_Distance                   = 30
Tele_Object_Height              = 2
Tele_Time_Object_Keep           = 15000
Tele_Raise_Speed                = 3.5
Tele_Delay_Between_Objects_Raise_Time = 400

Particles_Damage                = monsters\polter_damage
Particles_Death                 = monsters\polter_death
Particles_Idle                  = monsters\polter_idle
Particles_Hidden                = monsters\polter_linza
light_animator					= teleport_stancia_in_01	; svet_02 light_omni_white_idle light_1_alarm_green_idle
light_range						= 7.5
;light_color						= 0,1,0,1
light_brightness				= 0.16
light_vol_distance				= 0.22
light_vol_quality				= 0.2
light_vol_intensity				= 2.4
light_omni_range				= 2.2
;light_omni_color				= 0.9,0.2,0.25,0
light_omni_brightness			= 0.23

;light_death_range				= 10
;light_death_color				= 0.2,0.2,0.25,0
;light_death_time				= 0.5

;Hide_Particles                  = monsters\polter_yadro;monsters\polter_hide

Sound_Idle                      = monsters\poltergeist\tele_idle_0
sound_take_damage               = monsters\poltergeist\tele_damage_
sound_die                       = monsters\poltergeist\tele_death_

sound_tele_hold                 = monsters\burer\burer_tele_hold
sound_tele_throw                = monsters\burer\burer_tele_throw

[m_poltergeist_tele_outdoor]:m_poltergeist_normal_tele
$spawn               = "monsters\poltergeists\poltergeist_tele_outdoor"

Tele_Fly_Velocity			= 45
Tele_Max_Damage				= 1.0
Tele_Damage_Factor			= 1.4

Tele_Find_Radius			= 20
detection_far_range			= 60


;===========================================================================
; FLAMER
;===========================================================================

[m_poltergeist_normal_flame]:m_poltergeist_normal
$spawn				= "monsters\poltergeists\poltergeist_normal_flame"

type				= flamer
hit_type			= burn
parts_data			= polter_flame

immunities_sect		= poltergeist_immunities_normal_flame
hit_slowdown		= 3.5, 1.5

detection_pp_effector_name	=
detection_near_range_factor	=	2
detection_far_range_factor	=	1
detection_far_range			=	50
detection_speed_factor		=	4.0
detection_loose_speed		=	2.0
detection_success_level		=	10.0
detection_max_level			=   15.0
detection_fly_around_level	=	5.0
detection_fly_around_distance	= 8.0
detection_fly_around_change_direction_time	= 5 ; sec

flame_sound                = monsters\poltergeist\attack_hit_flame
flame_particles_prepare    = monsters\polter_yadro
flame_particles_fire       = static\monsters_fire_idle
flame_particles_stop       = static\monsters_fire_stop
flame_light_range			= 10
flame_light_animator		= koster
flame_fire_time_delay      = 1000		; don't change - for programmers only
flame_fire_time_play       = 6000
flame_length               = 7.5
flame_hit_value            = 0.5
flame_hit_delay            = 300
flames_count               = 3
flames_delay               = 2000	;3500
flame_aura_radius          = 11

flame_scan_radius           = 15
flame_scan_sound            = monsters\burer\burer_scan_affect_0
flame_scan_effector_section = m_poltergeist_scan_effector
flame_scan_delay_min_max    = 8000,15000

flame_min_dist            = 1.5
flame_max_dist            = 12
flame_min_height          = 0.5
flame_max_height          = 1.2


fire_max_distance         = 8
fire_max_power            = 0.15
fire_linear_factor        = 2
fire_quadratic_factor     = 8
fire_pp_effector_name     = postprocess_thermal_aura
fire_pp_highest_at        = 0.14

movement_hit_radius		= 0

Particles_Damage			= monsters\polter_damage
Particles_Death				= monsters\polter_death_00
Particles_Idle				= monsters\polter_idle_00
Particles_Hidden			= monsters\polter_linza_00

light_animator					= koster_01_old	; svet_02 light_omni_white_idle light_1_alarm_green_idle
light_range						= 5.0
light_brightness				= 0.3
light_omni_range				= 2.0
light_omni_brightness			= 0.25
light_vol_distance				= 0.6
light_vol_quality				= 0.3
light_vol_intensity				= 0.25

;Hidden_Particles			= monsters\polter_linza_00	;monsters\polter_hidden
Sound_Idle					= monsters\poltergeist\fire_idle_0

[poltergeist_immunities_normal_flame]
burn_immunity			= 0.0
strike_immunity			= 0.2
shock_immunity			= 0.7
wound_immunity			= 0.3
radiation_immunity		= 0.0
telepatic_immunity		= 0.0
chemical_burn_immunity	= 0.5
explosion_immunity		= 0.25
fire_wound_immunity		= 0.2	;0.0


[m_poltergeist_scan_effector]
duality_h			= 0.003
duality_v			= 0.002
blur				= 1.5
gray				= 0.3
noise_intensity		= 0.0
noise_grain			= 2
noise_fps			= 8
color_base			= 0.55,0.5,0.5;0.637,0.442,0.456
color_gray			= 0.333,0.333,0.333
color_add			= 0.05,0.0,0.0
time				= 10.00
time_attack			= 0.3		; fade in
time_release		= 0.85		; fade out


[m_poltergeist_strong_flame]:m_poltergeist_normal_flame
$spawn				= "monsters\poltergeists\poltergeist_strong_flame"

immunities_sect		= poltergeist_immunities_strong_flame

flames_count			= 5
flames_delay			= 1200
flame_aura_radius		= 15
flame_hit_value			= 0.5
flame_scan_radius		= 20

[poltergeist_immunities_strong_flame]
burn_immunity			= 0.0
strike_immunity			= 0.2
shock_immunity			= 0.6
wound_immunity			= 0.3
radiation_immunity		= 0.0
telepatic_immunity		= 0.0
chemical_burn_immunity	= 0.5
explosion_immunity		= 0.18
fire_wound_immunity		= 0.15	;0.0

;===========================================================================
; SWAMP FLAMER
;===========================================================================

[m_poltergeist_flame_swamp]:m_poltergeist_normal_flame
flame_sound				= monsters\poltergeist\attack_hit_flame
flame_particles_prepare	= terra\monsters_t\polter_yadro_sw
flame_particles_fire	= terra\monsters_t\swmonsters_fire_idle
flame_particles_stop	= terra\monsters_t\swmonsters_fire_stop
flame_length			= 8.0
flame_hit_value			= 0.4
flame_hit_delay			= 200
flames_count			= 2
flames_delay			= 2500

flame_scan_radius		= 15
flame_scan_sound			= monsters\burer\burer_scan_affect_0
flame_scan_effector_section	= m_poltergeist_swamp_scan_effector
flame_scan_delay_min_max	= 5000,10000

fire_pp_effector_name		= postprocess_toxic

Particles_Damage				= terra\monsters_t\polter_damage_sw2;polter_damage_fl_sw
Particles_Death					= terra\monsters_t\polter_death_fl_sw
Particles_Idle					= terra\monsters_t\polter_idle_fl_sw
Particles_Hidden				= terra\monsters_t\polter_linza_fl_sw

light_animator					= light_1_alarm_green_idle
light_range						= 5.5
light_brightness				= 0.25
light_omni_range				= 2.0
light_omni_brightness			= 0.25
light_vol_distance				= 0.6
light_vol_quality				= 0.3
light_vol_intensity				= 0.3

;Hidden_Particles				= terra\monsters_t\polter_hidden_sw	;monsters\polter_hidden
Sound_Idle						= monsters\poltergeist\fire_idle_0
sound_die						= anomaly\anomaly_body_tear_1

[m_poltergeist_swamp_scan_effector]:m_poltergeist_scan_effector
duality_h			= 0.003
duality_v			= 0.002
blur				= 1.5
gray				= 0.3
noise_intensity		= 0.0
noise_grain			= 2
noise_fps			= 8
color_base			= 0.3,0.55,0.6;0.637,0.442,0.456
color_gray			= 0.3,0.3,0.3
color_add			= 0.03,0.03,-0.50
time				= 8.0;10.00
time_attack			= 0.3		; fade in
time_release		= 0.85		; fade out

[m_poltergeist_flame_swamp_strong]:m_poltergeist_flame_swamp
flame_hit_value			= 0.7
flame_scan_effector_section	= m_poltergeist_swamp_strong_scan_effector

immunities_sect		= poltergeist_immunities_swamp_strong

[m_poltergeist_swamp_strong_scan_effector]:m_poltergeist_scan_effector
duality_h			= 0.003
duality_v			= 0.002
blur				= 1.5
gray				= 0.3
noise_intensity		= 0.0
noise_grain			= 2
noise_fps			= 16
color_base			= 0.2,0.35,0.4;0.637,0.442,0.456
color_gray			= 0.3,0.3,0.3
color_add			= 0.03,0.031,-0.50
time				= 10.00
time_attack			= 0.3		; fade in
time_release		= 0.85		; fade out

[poltergeist_immunities_swamp_strong]
burn_immunity			= 0.4
strike_immunity			= 0.1
shock_immunity			= 0.4
wound_immunity			= 0.3
radiation_immunity		= 0.0
telepatic_immunity		= 0.0
chemical_burn_immunity	= 0.1
explosion_immunity		= 0.2
fire_wound_immunity		= 0.15
