;===========================================================================
; CONTROLLER
;===========================================================================
[m_controller_act]:monster_base
GroupControlSection		= spawn_group
SpaceRestrictionSection = space_restrictor,zone_mosquito_bald ;,zone_radioactive
$spawn               = "monsters\old\controller_act"		; option for Level Editor
$npc			     = on						; option for Level Editor
;$prefetch 			 = 16
visual				 = monsters\kontroler_act\kontroler
corpse_visual		 = monsters\kontroler_act\kontroler
icon			= ui_npc_monster_kontroler
MaxHealthValue		    = 200			; range [0..200]

;------------------------------------------------------------------------
; Offline Alife
;------------------------------------------------------------------------
Scheduled				= on						; option for ALife Simulator
Human		     		= off						; option for ALife Simulator
Health					= 200						; option for ALife Simulator
MinSpeed				= 1.0						; option for ALife Simulator
MaxSpeed				= 5.0						; option for ALife Simulator
going_speed				= 4.5                      	; option for ALife Simulator
search_speed			= 1.5                       ; option for ALife Simulator
smart_terrain_choose_interval	= 00:15:00

;---------------------------------------------------------------------
; Physics
;---------------------------------------------------------------------
ph_box0_center 		 = 0.0,  0.9,  0.0
ph_box0_size 		 = 0.45, 0.9,  0.45	
ph_box1_center 		 = 0.0,  0.6,  0.0
ph_box1_size 		 = 0.45, 0.6,  0.45
ph_crash_speed_min			= 100
ph_crash_speed_max			= 300
ph_collision_damage_factor	= 0.1
ph_mass 		     = 90

destroyed_vis_name = physics\dead_body\skelet_crash;

;;---------------------------------------------------------------------
;ph_skeleton_airr_lin_factor   = 1.0
;ph_skeleton_airr_ang_factor   = 1.0
;ph_skeleton_hinger_factor1    = 1.0
;ph_skeleton_ddelay	     	  = 3000
;ph_skel_fatal_impulse_factor  = 10.0
;ph_after_death_velocity_factor= 1.4
;ph_skel_shot_up_factor        = 2.5
;;---------------------------------------------------------------------

;----------------------------------------------------------------------------
; Movement::Velocities & Acceleration
;----------------------------------------------------------------------------
; speed factors			linear | angular_real | angular_path | min |  max
Velocity_Stand			= 0,		2.4,			2.4,		1,		1
Velocity_WalkFwdNormal	= 0.9,		3.0,			3.0,		0.02,	2.0	
Velocity_WalkFwdDamaged	= 0.7,		3.0,			3.0,		0.5,	2.0	
Velocity_RunFwdNormal	= 6.0,		2.6,			2.6,		0.25,	1	
Velocity_RunFwdDamaged	= 4.0,  	2.0,			2.0,		0.2,	1
Velocity_Drag			= -5.0,		0.01,			0.01,		1,		1
Velocity_Steal			= 0.7,		1.3,			1.3,		1,		1
Velocity_Drag			= -5.0,		0.01,			0.01,		1,		1
Velocity_MoveFwd		= 5.0,		0.01,			0.01,		1,		1
Velocity_MoveBkwd		= -5.0,		0.01,			0.01,		1,		1

; acceleration
Accel_Generic			= 1.5
Accel_Calm				= 2.5
Accel_Aggressive		= 12.5

;--------------------------------------------------------------------------
; Attack parameters
;--------------------------------------------------------------------------
MinAttackDist		= 1.5
MaxAttackDist		= 2.5 ;2.9

as_min_dist				= 0.3
as_step					= 0.5

attack_effector			= m_controller_act_attack_effector
attack_params			= m_controller_act_attack_params

;Melee_Rotation_Factor	= 1.8
;-------------------------------------------------------------------------
; Entity Conditions
;-------------------------------------------------------------------------

satiety_v				= 0.0005					;скорость уменьшения сытости со временем
radiation_v				= 0.00001					;скорость уменьшения радиации
satiety_power_v			= 0.001					;увеличение силы при уменьшении сытости 
satiety_health_v		= 0.001					;увеличение здоровья при уменьшении сытости 
satiety_critical		= -1.0						;критическое значения сытости (в процентах от 0..1) когда здоровье начианает уменьшаться
radiation_health_v		= 0.01				;уменьшение здоровья при воздействии радиации
morale_v				= 0.1					;скорость восстановления морали
health_hit_part			= 0.25						;процент хита, уходящий на отнимание здоровья
power_hit_part			= 0.1						;процент хита, уходящий на отнимание силы
psy_health_v			= 0.1						;скорость восстановления psy-здоровья

immunities_sect			= controller_act_immunities

;открытые раны
bleeding_v						= 0.04						;потеря крови при номинальной ране в секунду
wound_incarnation_v				= 0.05				;крутизна кривой заживления (какой процент раны останется после заживления в игровую секунду)
min_wound_size					= 0.01

sleep_health					= 1.0		;1.5				;коэффициенты скоростей изменения параметров во время сна
sleep_power						= 1.0		;1.5
sleep_satiety					= 1.0		;0.8
sleep_radiation					= 1.0		;1.1
sleep_psy_health				= 1.0

eat_freq						= 5.0		; частота укусов в сек
eat_slice						= 0.04	; увеличение сытости при 1 укусе
eat_slice_weight				= 10.0	; уменьшение еды у трупа

DayTime_Begin			= 0			; начала дня для монстра
DayTime_End				= 21		; конец дня для монстра
Min_Satiety				= 0.6		; мин. норма сытости (меньше - уже голодный)
Max_Satiety				= 0.9	; макс. норма сытости (больше - очень сытый)

satiety_threshold		= 0.5							; below this value monster fill hunger
;---------------------------------------------------------
; Sounds and sound parameters
;---------------------------------------------------------

sound_idle			= monsters\controller_act\controller_idle_
sound_eat			= monsters\controller_act\controller_eat_
sound_aggressive		= monsters\controller_act\controller_attack_
sound_attack_hit		= monsters\controller_act\controller_attack_ ;hit_
sound_take_damage		= monsters\controller_act\controller_hit_
sound_die			= monsters\controller_act\controller_die_
sound_threaten			= monsters\boar\threaten_
sound_landing			= monsters\boar\landing_
sound_steal			= monsters\biting\def_
sound_panic			= monsters\controller_act\controller_panic_
sound_growling			= monsters\biting\def_
sound_gravi_attack		= monsters\poltergeist\attack_
sound_tele_attack		= monsters\biting\def_
sound_gravi_wave		= monsters\bloodsucker\invisible ;monsters\controller_act\controller_act_psy_hit_0
sound_die_in_anomaly	= monsters\controller_act\controller_die_
killer_clsids				= Z_MINCER,Z_GALANT

idle_sound_delay		= 12000
eat_sound_delay			= 10000
attack_sound_delay		= 5000


sound_distant_idle			= monsters\controller_act\controller_idle_
distant_idle_sound_delay	= 20000 ;80000
distant_idle_sound_range	= 100.0	


SoundThreshold			= 0.06             ; range [0..1]
max_hear_dist			= 60

;-------------------------------------------------------------------------
; Vision
;-------------------------------------------------------------------------
DynamicObjectsCount		= 32
eye_fov					= 150
eye_range				= 100

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

;-------------------------------------------------------------------------
; Morale
;-------------------------------------------------------------------------

Morale_Hit_Quant				= 0.05
Morale_Attack_Success_Quant		= 0.1
Morale_Take_Heart_Speed			= 0.1
Morale_Despondent_Speed			= 0.1
Morale_Stable_Speed				= 0.02
Morale_Despondent_Threashold	= 0.5

Friend_Community_Overrides	= monolith, zombied

;-------------------------------------------------------------------------
; Gravi Ability
;-------------------------------------------------------------------------
Gravi_Speed					= 60 ;76	; meter/sec	
Gravi_Step					= 2		; meter
Gravi_Time_To_Hold			= 1800 ;1200	;2400 ;1200	; milisec
Gravi_Radius				= 3.0
Gravi_Impulse_To_Objects	= 0 ;60.0
Gravi_Impulse_To_Enemy		= 0; 400.0
Gravi_Hit_Power			= 0.2 ;0.6 ;0.8

;-------------------------------------------------------------------------
; Tele Ability
;-------------------------------------------------------------------------
Tele_Fly_Time					= 0.30
Tele_Fly_Velocity				= 100 ;30

Tele_Max_Handled_Objects = 0	
Tele_Time_To_Hold		 = 0
Tele_Object_Min_Mass	 = 0
Tele_Object_Max_Mass	 = 0
Tele_Find_Radius		 = 0

Tele_Delay_Between_Objects_Time	= 0
Tele_Distance					= 0
Tele_Object_Height				= 0
Tele_Time_Object_Keep			= 0
Tele_Raise_Speed				= 0
Tele_Delay_Between_Objects_Raise_Time	= 0

sound_tele_hold			= monsters\biting\def_0
sound_tele_throw		= monsters\biting\def_0

;----------
Particles_Damage				= anomaly2\bloodsucker_mask_nil
Particles_Death					= anomaly2\bloodsucker_mask_nil
Particles_Idle					= anomaly2\bloodsucker_mask_nil
Particles_Hidden				= anomaly2\bloodsucker_mask_nil
Hidden_Particles				= anomaly2\bloodsucker_mask_nil
;Hide_Particles					= anomaly2\bloodsucker_mask_nil
;-----------------
;-------------------------------------------------------------------------
; Scanner
;-------------------------------------------------------------------------
scan_critical_value		= 25.0	; граничное значение 
scan_radius				= 20; радиус сканирования
scan_velocity_threshold	= 1.5 ;4.0	; граничная скорость, до которой движение актера игнорируется
scan_decrease_value		= 0.3	; уменьшение текущей суммы в секунду
scan_trace_time_freq	= 2		; частота трейса скорости (for programmer only) (1 = 2 раза в сек)

scan_sound				= monsters\controller_act\controller_psy_aura_l
scan_effector_section	= m_controller_act_scan_effector

;-------------------------------------------------------------------------
; Particles
;-------------------------------------------------------------------------
Particle_Tele_Object	= anomaly2\bloodsucker_mask_nil
Particle_Gravi_Wave		= weapons\generic_weapon_controler
Particle_Gravi_Prepare	= anomaly2\bloodsucker_mask_nil
Particle_Shield			= anomaly2\bloodsucker_mask_nil



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

ef_creature_type		= 12						; option for evaluation functions
ef_weapon_type			= 11
ef_detector_type		= 1
panic_threshold			= 0.5 ;0.4 ;0.1

cform					= skeleton					; collision class
class					= SM_BURER					; AI class

script_binding  		= bind_monster.bind

bone_torso			 = bip01_spine1 			; bone name
bone_head			 = bip01_head				; bone name
bone_fire			 = bip01_head				; bone name
weapon_usage		 = 0						; boolean
actor_restrictor		= medium_monster ;medium_monster,stalker,none


distance_to_corpse		= 1.2	; дист. до трупа, при которой он переходит в состояние еды

;                           fSearchRange,fOptEnemyDistance,fOptEnemyDistanceWeight,fMinEnemyDistance,fMinEnemyDistanceWeight,fMaxEnemyDistance,fMaxEnemyDistanceWeight
selector_free_hunting    =      20.0,            20.0,                 1000.0,                 0.0,               10000.0,               1000.0,               10000.0,      
;                           fSearchRange,fCoverFromEnemyWeight,fOptEnemyDistance,fOptEnemyDistanceWeight,fMinEnemyDistance,fMinEnemyDistanceWeight,fMaxEnemyDistance,fMaxEnemyDistanceWeight
selector_cover           =      20.0,            -1000.0,                30.0,                 0.0,                  0.0,              100000.0,             100000.0,               1000.0,
selector_hear_sound		=      20.0,            1.0,				1000.0,              0.0,               0.0,              1000.0,               10000.0,      

selector_getaway		=      20.0,            20.0,                1000.0,             0.0,               10000.0,		  1000.0,				10000.0,      
selector_approach		=      20.0,            1.0,                 1000.0,             0.0,               0.0,              1000.0,				10000.0,      
;							  fSearchRange,fOptEnemyDistance,fOptEnemyDistanceWeight,fMinEnemyDistance,fMinEnemyDistanceWeight,fMaxEnemyDistance,fMaxEnemyDistanceWeight
selector_walk_around	=      20.0,            6.0,                 1000.0,             4.0,               5000.0,					8.0,				5000.0,      

terrain					= controller_act_terrain
hit_type				= telepatic; wound ;psy_hit

DamagedThreshold		= 0.3

material				= creatures\medium
step_params				= m_controller_act_step_params
LegsCount				= 2
damage					= m_controller_act_damage

;species of monster
species					= controller
rank					= 0
spec_rank				= weak
community				= controller
;monster_type			= indoor

;=================================================================================
; Controller Attack Params
;=================================================================================
[m_controller_act_attack_params]
;---------------------------------------------------------------------------------------------------------------------------------------------
;	anim			| time[0..1] | hit_power | impulse | impulse_dir (x,y,z)  |	Field of hit_test  (left,right, bottom, top ) |	Test Dist
;---------------------------------------------------------------------------------------------------------------------------------------------
;Right hand Strike
stand_attack_0 =	  	0.45,		0.15,		    60,        0.0, 1.0, 0.0,		 -1.6, 1.6, -1.6, 1.6,				  3.5
;RightLeft combo strike
stand_attack_1 =	  	0.25,		0.20,		    60,        0.0, 1.0, 0.0,		 -1.6, 1.6, -1.6, 1.6,				  3.5
;stand_attack_1 =	  	0.45,		0.30,		    200,        0.0, 1.0, 0.0,		 -1.6, 1.6, -1.6, 1.6,				  3.5

;=================================================================================
; Controller Attack Effector
;=================================================================================

[m_controller_act_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 


;=================================================================================
; Controller Step Params
;=================================================================================

[m_controller_act_step_params]
;---------------------------------------------------------------------------
;	anim			| Cycles | time1 | power1 | time2 | power2 |
;---------------------------------------------------------------------------
stand_walk_fwd_0 	=	    1,	   0.01,     1,     0.25,    0.7,  
stand_walk_fwd_1 	=	    5,	   0.01,     1,     0.25,    0.7,    
stand_walk_dmg_0 	=	    3,	   0.01,     1,     0.25,    0.7,     
stand_run_fwd_0	 	=	    1,	   0.01,     1,	    0.25,    0.6,  
stand_run_fwd_1	 	=	    3,	   0.01,     1,	    0.25,    0.6,     
stand_run_dmg_0	 	=	    4,	   0.01,     1,	    0.25,    0.6,    

;===========================================================================
; CONTROLLER IMMUNITIES
;===========================================================================
[controller_act_immunities]
burn_immunity 						= 1.0				;коэффициенты иммунитета 
strike_immunity 					= 0.9
shock_immunity 						= 1.0
wound_immunity 						= 0.2
radiation_immunity 					= 0.0
telepatic_immunity 					= 0.0
chemical_burn_immunity 				= 0.9
explosion_immunity 					= 0.8
fire_wound_immunity  				= 0.5


;=================================================================================
; Controller Damage
;=================================================================================

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

default				= 0.2, -1, 0.1

bip01_pelvis 		= 0.5, -1, 0.5
bip01_spine 		= 0.5, -1, 0.5
bip01_spine1 		= 0.5, -1, 0.5
bip01_neck 			= 0.5, -1, 1.0
bip01_head 			= 1.5, -1, 0.5
;=================================================================================
; Controller Scan Effector
;=================================================================================
[m_controller_act_scan_effector]
duality_h		= 0.02
duality_v		= 0.02
blur			= 0.4
gray			= 0.5
noise_intensity = 0.6
noise_grain		= 2
noise_fps		= 25
;color_base		= 0.8,0.8,0.8
;color_gray		= 0.6,0.6,0.6
;color_add		= 0.00,0.02,0.07
color_base		= 0.9,0.9,1.0
color_gray		= 0.33,0.330,0.33
color_add		= 0.00,0.00,0.015
;radius_min		= 0.01
;radius_max		= 0.8
time				= 10.00
time_attack			= 0.3		; fade in
time_release		= 0.85		; fade out

;=================================================================================
; Terrain
;=================================================================================
[controller_act_terrain]
	255,000,255,255