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

class					= SM_GIANT		; AI class

visual					= monsters\psevdogigant\psevdogigant
corpse_visual			= monsters\psevdogigant\psevdogigant_dead
icon					= ui_npc_monster_psevdogigant

species					= giant

script_binding			= bind_monster.bind

ef_creature_type		= 19		; option for evaluation functions
ef_weapon_type			= 3
ef_detector_type		= 1
panic_threshold			= 0.1

bone_torso				= bip01_spine1
bone_head				= bip01_head
bone_fire				= bip01_head
bone_drag				= bip01_l_calf

max_threat_distance		= 30		; для сталкеров, расстояние, до которого не допускается игнор монстра
parts_cut_count			= 20
parts_data				= gigant

;------------------------------------------------------------------------
; Offline Alife
;------------------------------------------------------------------------
Scheduled					= on			; option for ALife Simulator
Human						= off			; option for ALife Simulator
Health						= 500			; option for ALife Simulator
MinSpeed					= 1.0			; option for ALife Simulator
MaxSpeed					= 3.0			; option for ALife Simulator
going_speed					= 2.0			; option for ALife Simulator
current_level_going_speed	= 1				; option for ALife Simulator
MaxHealthValue				= 200			; range [0..200]
;------------------------------------------------------------------------
; Influences
;------------------------------------------------------------------------
psy_max_distance			= 6.0
psy_max_power				= 0

radiation_max_distance		= 7.0
radiation_max_power			= 0.03
radiation_linear_factor		= 0.3
radiation_quadratic_factor	= 0.7
;---------------------------------------------------------------------
; Physics
;---------------------------------------------------------------------
ph_box0_center			= 0.0,  0.9,  0.0
ph_box0_size			= 0.65, 0.9,  0.65
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		= 200
ph_collision_damage_factor	= 0.1
ph_mass					= 900

;destroyed_vis_name		= physics\dead_body\skelet_crash_monster

;---------------------------------------------------------------------
ph_skeleton_collision_enabled	= true
ph_skeleton_skin_friction_start	= 0.5   ;Стартовое значение трения для оболочки
ph_skeleton_skin_friction_end	= 0.5   ;Финальное значение трения для оболочки
ph_skeleton_skin_ddelay			= 1.0   ;Время изменения значения трения с момента создания шелла, сек.

ph_skel_fatal_impulse_factor	= 1.0
ph_after_death_velocity_factor	= 1.1
ph_skel_shot_up_factor			= 0.4

;----------------------------------------------------------------------------
; Movement::Velocities & Acceleration
;----------------------------------------------------------------------------
; speed factors			linear | angular_real | angular_path | min |  max
Velocity_Stand			= 0,		4.0,			4.0,		1,		1
Velocity_WalkFwdNormal	= 1.5,		1.8,			1.8,		0.3,	1.5
Velocity_RunFwdNormal	= 4.2,		2.4,			2.4,		0.4,	1		;11.0,		4.0,			4.0,		0.2,	1
Velocity_WalkFwdDamaged	= 1.7,		1.2,			1.2,		0.3,	1.5
Velocity_RunFwdDamaged	= 2.38,		2.0,			2.0,		0.4,	1		;6.0,		3.0,			3.0,		0.4,	1
Velocity_Steal			= 1.55,		1.0,			1.0,		1,		1
Velocity_JumpPrepare	= 5.2,		1.0,			1.0,		1,		1
Velocity_JumpGround		= 8.0,		1.0,			1.0,		0.16,	1

; acceleration
Accel_Generic		= 1.5
Accel_Calm			= 1.5
Accel_Aggressive	= 11

;--------------------------------------------------------------------------
; Attack parameters
;--------------------------------------------------------------------------
;attack_effector	= m_giant_attack_effector
attack_params		= m_gigant_attack_params

MinAttackDist		= 1.5
MaxAttackDist		= 2.5
as_min_dist			= 1.8
as_step				= 0.3

Melee_Rotation_Factor	= 1.0

hit_type			= strike
;-----------------------------------------------------------------------
; Run Attack
;-----------------------------------------------------------------------
Run_Attack_Dist			= 2.8,	4.1
Run_Attack_Delay		= 4000,	6000
;-----------------------------
; Jump parameters
;-----------------------------
jump_enabled				= 1
jump_probability			= 0.3
jump_delay					= 11000
jump_factor					= 1.2	;1.6
jump_ground_trace_range		= 1.45
jump_hit_trace_range		= 2.8
jump_min_distance			= 4.5
jump_max_distance			= 10.5
jump_max_angle				= 0.3
jump_max_height				= 5.5
jump_auto_aim_factor		= 0
jump_predict_factor			= 1.0
jump_predict_prob			= 0.2
;-----------------------------
; Kick
;-----------------------------
HugeKick_Damage				= 1.2
HugeKick_Particles			= monsters\gigant_wave
HugeKick_MinMaxDist			= 4,	20
HugeKick_MinMaxDelay		= 13000, 24000
HugeKick_Time_SlowDown		= 3200

threaten_effector			= pseudogigant_threaten_effector

;----------------------------------------------------------------------------------------
;Entity Condition
;----------------------------------------------------------------------------------------
satiety_v				= 0.00015			;скорость уменьшения сытости со временем
radiation_v				= 0.00001			;скорость уменьшения радиации
radiation_health_v		= 0.0				;уменьшение здоровья при воздействии радиации
morale_v				= 0.01				;скорость восстановления морали
health_hit_part			= 1.0				;процент хита, уходящий на отнимание здоровья
power_hit_part			= 0.0				;процент хита, уходящий на отнимание силы
psy_health_v			= 0.01				;скорость восстановления psy-здоровья

;Immunities
immunities_sect			= giant_immunities
protections_sect		= giant_protections

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

;Eat settings
eat_freq				= 1.0		; частота укусов в сек
eat_slice				= 0.02		; увеличение сытости при 1 укусе
eat_health				= 0.02		; увеличение здоровья при 1 укусе
eat_slice_weight		= 200		; уменьшение еды у трупа
satiety_threshold		= 0.6		; below this value monster fill hunger
;----------------------------------------------------------------------------------------
; Morale
;----------------------------------------------------------------------------------------
Morale_Hit_Quant				= 0.001
Morale_Attack_Success_Quant		= 0.1
Morale_Take_Heart_Speed			= 0.1
Morale_Despondent_Speed			= 0.1
Morale_Stable_Speed				= 0.01
Morale_Despondent_Threashold	= 0.5
;----------------------------------------------------------------------------------------
; Sounds
;----------------------------------------------------------------------------------------
sound_idle				= monsters\giant\giant_breath_		; giant_idle_
sound_eat				= monsters\boar\boar_eat_
sound_aggressive		= monsters\giant\giant_aggressive_
sound_attack_hit		= monsters\giant\giant_attack_
sound_take_damage		= monsters\giant\giant_hurt_
sound_die				= monsters\giant\giant_death_
sound_threaten			= monsters\giant\giant_threaten_	; boar\threaten_
sound_steal				= monsters\biting\def_
sound_panic				= monsters\biting\def_
;sound_growling			= monsters\biting\def_
sound_die_in_anomaly	= monsters\giant\giant_death_
sound_distant_idle		= monsters\giant\giant_breath_

sound_threaten_hit		= device\door_stop
sound_threaten_start	= monsters\giant\giant_attack_0
---------------------------------------------------------------------------
killer_clsids		= ZS_AMEBA,ZS_HAIRS,ZS_MBALD,ZS_MINEF,ZS_GALAN,ZS_MINCE,ZS_GRAVI,ZS_CAMPF,ZS_TORRD

idle_sound_delay	= 85000
eat_sound_delay		= 3000
attack_sound_delay	= 14000

distant_idle_sound_delay	= 80000
distant_idle_sound_range	= 100.0

SoundThreshold		= 0.1		; range [0..1]
max_hear_dist		= 50
;-------------------------------------------------------------------------
; Damages
;-------------------------------------------------------------------------
DamagedThreshold	= 0.15

damage				= m_giant_damage

critical_wound_threshold		= -1
critical_wound_decrease_quant	= 0

;-------------------------------------------------------------------------
; Other Stuff (refactoring needed)
;-------------------------------------------------------------------------
DayTime_Begin		= 8
DayTime_End			= 22
sleep_time			= 6.5

distance_to_corpse	= 1.0

terrain				= giant_terrain

material			= creatures\large

LegsCount			= 2
step_params			= m_gigant_step_params

;monster_type		= outdoor

Anomaly_Detect_Radius			= 10
Anomaly_Detect_Time_Remember	= 20000

;-----------------------------
; step effector
;-----------------------------
step_effector_time			=  0.5
step_effector_amplitude		=  1.5
step_effector_period_number	=  5.0

;-------------------------------------------------------------------------
; Vision
;-------------------------------------------------------------------------
eye_fov					= 110
eye_range				= 55
eye_rotation			= 0, 0.6

vision_free_section		= giant_vision_free
vision_danger_section	= giant_vision_danger

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

[giant_vision_free]
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            = 0.5                 ; фактор освещения (только для Актёра)
transparency_threshold        = 0.25

[giant_vision_danger]
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            = 0.5                 ; фактор освещения (только для Актёра)
transparency_threshold        = 0.25

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

default			= 1, -1, 0.1
bone01			= 1, -1, 0.3	; jopa
bip01_pelvis	= 1, -1, 0.1
bip01_spine		= 1, -1, 0.1
;bip01_neck		= 1, -1, 0.5
bip01_head		= 2, -1, 0.2

;=========================================================================================
; Attack Effector
;=========================================================================================
[m_giant_attack_effector]
duality_h			= 0.05
duality_v			= 0.08
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				= 1.5
time_attack			= 0.05		; fade in
time_release		= 0.65		; fade out

; camera effects
ce_time				= 0.85
ce_amplitude		= 25.0
ce_period_number	= 3.0
ce_power			= 3.0

;=========================================================================================
; Attack Animation Params
;=========================================================================================
[m_gigant_attack_params]
;---------------------------------------------------------------------------------------------------------------------------------------------
;    anim            | time[0..1] | hit_power | impulse | impulse_dir (x,y,z) | Field of hit_test  (left,right, top, bottom) | Test Dist
;---------------------------------------------------------------------------------------------------------------------------------------------
stand_attack_0		=	0.40,		0.4,		80,			-0.1, 0.5, 0.4,			-0.8, 0.8, -1.8, 1.8,						2.6,		wound_2
stand_attack_1		=	0.40,		0.5,		80,			0.0, -0.7, 0.3,			-0.8, 0.8, -1.8, 1.8,						2.6,		wound_2
stand_attack_2		=	0.35,		0.7,		250,		0.2, -0.2, 0.6,			-0.8, 0.8, -1.8, 1.8,						3.3,		strike
stand_attack_run_0	=	0.45,		0.8,		550,		-0.2, -0.2, 0.6,		-0.6, 1.3, -1.8, 1.8,						3.2,		strike
jump_attack_1		=	0.9,		1.2,		1500,		0.0, -0.5, 0.5,			-1.0, 1.3, -1.6, 1.6,						0,			strike

;=========================================================================================
; Step Params
;=========================================================================================
[m_gigant_step_params]
;------------------------------------------------------------------------
;	anim				Cycles| time1 | power1 | time2 | power2 |
;------------------------------------------------------------------------
stand_walk_fwd_0		= 1,	1.0,	0.6,	0.48,	0.6
stand_walk_fwd_dmg_0	= 1,	0.6,	0.4,	1.0,	0.8
stand_walk_fwd_fst_0	= 1,	0.1,	1,		0.56,	1
stand_walk_fwd_fst_dmg_0= 1,	0.6,	0.8,	1.0,	1.2
;stand_run_fwd_0		= 1,	0.1,	1,		0.6,	1
;stand_run_dmg_0		= 1,	0.2,	1,		0.6,	1
stand_steal_0			= 1,	0.86,	0.2,	0.37,	0.2
stand_attack_run_0		= 1,	0.95,	1,		0.55,	2.0

;stand_run_look_left_0	= 1,	1.0,	0.8,	0.52,	0.8
;stand_run_look_right_0	= 1,	1.0,	0.8,	0.50,	0.8

stand_turn_ls_0			= 1,	0.5,	0.3,	0.9,	0.3
stand_turn_rs_0			= 1,	0.95,	0.3,	0.5,	0.3
jump_attack_0			= 1,	0.0,	0.5,	0.5,	1
jump_attack_2			= 1,	0.28,	1,		0.71,	1

;=========================================================================================
; Threaten Effector
;=========================================================================================
[pseudogigant_threaten_effector]
duality_h			= 0.1
duality_v			= 0.1
blur				= 0.01
gray				= 0.3
noise_intensity		= 0.5
noise_grain			= 0.2
noise_fps			= 30
color_base			= 0.3,0.2,0.2
color_gray			= 0.333,0.333,0.333
color_add			= 0.0,0.0,0.0
time				= 2.0
time_attack			= 0.1		; fade in
time_release		= 0.3		; fade out

; camera effects
ce_time				= 1.7
ce_amplitude		= 6.0
ce_period_number	= 20.0
ce_power			= 1.3

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

;===========================================================================
; IMMUNITIES
;===========================================================================
[giant_immunities]
burn_immunity			= 0.2
strike_immunity			= 0.1
shock_immunity			= 0.11
wound_immunity			= 0.01		;0.1
radiation_immunity		= 0.01
telepatic_immunity		= 1.0
chemical_burn_immunity	= 0.05
explosion_immunity		= 0.2
fire_wound_immunity		= 0.06

[giant_protections]
skin_armor				= 0.75
hit_fraction_monster	= 0.35

[gigant_normal]:m_gigant_e
$spawn				= "monsters\gigants\gigant_normal"
visual				= monsters\psevdogigant\psevdogigant
icon				= ui_npc_monster_psevdogigant
rank				= 401
spec_rank			= normal

hit_power_factor	= 1.0
health_hit_part		= 1.0

[gigant_strong]:m_gigant_e
$spawn				= "monsters\gigants\gigant_strong"
visual				= monsters\psevdogigant\psevdogigant_strong
corpse_visual		= monsters\psevdogigant\psevdogigant_strong
icon				= ui_npc_monster_psevdogigant
rank				= 801
spec_rank			= strong

HugeKick_Damage			= 2.0
HugeKick_MinMaxDist		= 4, 24
HugeKick_Time_SlowDown	= 5000

hit_power_factor		= 1.2
health_hit_part			= 0.65
