;-- Relies on Chimera profile/class ;-- parameters that have comments with (;-->) tag are adjusted [m_lurker_e]:monster_base GroupControlSection = spawn_group SpaceRestrictionSection = space_restrictor,zone_mosquito_bald,zone_witches_galantine,zone_burning_fuzz1,zone_mincer,zone_gravi_zone $spawn = "monsters\lurker\lurker_default" ;"monsters\chimera\chimera_default" ; option for Level Editor $npc = on ; option for Level Editor ;$prefetch = 16 visual = monsters\lurker\lurker corpse_visual = monsters\lurker\lurker icon = ui_npc_monster_lurker ; @@@@@NEEDS REFACTORING@@@@@ terrain = lurker_terrain ;------------------------------------------------------------------------ ; Influences ;------------------------------------------------------------------------ fire_max_distance = 0 fire_max_power = 5 fire_linear_factor = 0 fire_quadratic_factor = 0.025 psy_max_distance = 0 psy_max_power = 5 psy_linear_factor = 0.05 psy_quadratic_factor = 0 radiation_max_distance = 0 radiation_max_power = 0.01 radiation_linear_factor = 1 radiation_quadratic_factor = 1 radiation_pp_effector_name = postprocess_rad radiation_pp_highest_at = 0.04 ;spawn_phantom = m_phantom_chimera can_spawn_phantom = false ;---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 ;5.0 ; option for ALife Simulator ;--> going_speed = 3.0 ;4.5 ; option for ALife Simulator current_level_going_speed = 3.0 ;2 ; option for ALife Simulator search_speed = 1.5 ; option for ALife Simulator MaxHealthValue = 200 ; range [0..200] smart_terrain_choose_interval = 00:15:00 ;----------------------------------------------------------------------------------- script_binding = bind_monster.bind ef_creature_type = 20 ; option for evaluation functions ef_weapon_type = 2 ef_detector_type = 1 panic_threshold = 0.08 ;0.0 ;--> cform = skeleton ; collision class class = SM_CHIMS ; AI class kind = SM_LURKER ; Fake class bone_torso = spine_1 ; bone name bone_head = head_boss ; bone name bone_fire = head_boss ; bone name weapon_usage = 0 ; boolean ;--------------------------------------------------------------------- ; Physics ;--------------------------------------------------------------------- ph_box0_center = 0.0, 0.9, 0.0 ph_box0_size = 0.35, 0.9, 0.35 ph_box1_center = 0.0, 0.6, 0.0 ph_box1_size = 0.40, 0.6, 0.40 ph_crash_speed_min = 10 ph_crash_speed_max = 30 ph_collision_damage_factor = 0.01 ph_mass = 220;170 destroyed_vis_name = dynamics\Dead_Body\skelet_crash_monster ;destroyed_vis_name = dynamics\Dead_Body\skelet_crash ph_skeleton_airr_lin_factor = 2.0 ;550.0 (изменно из-за того, что убрано домножение коэффициент 0.002 из кода) ph_skeleton_airr_ang_factor = 0.0 ;0.0 (изменно из-за того, что убрано домножение на коэффициент 0.3 из кода (0.0*0.3=0.0)) ph_skeleton_hinger_factor1 = 1.0 ;1.0 (изменно из-за того, что убрано домножение на коэффициент 5.0 из кода) ph_skeleton_ddelay = 15.0 ;Время изменения значения трения в суставе с момента создания шелла, сек ph_skel_fatal_impulse_factor = 12.0 ph_after_death_velocity_factor = 0.75 ph_skel_shot_up_factor = 0.25 ;---------------------------------------------------------------------------- ; Movement::Velocities & Acceleration ;---------------------------------------------------------------------------- ; speed factors linear | angular_real | angular_path | min | max Velocity_Stand = 0, 3.5, 1.5, 1, 1 Velocity_RunFwdNormal = 11.5, 3.5, 2.0, 0.2, 1 Velocity_RunFwdDamaged = 9.0, 3.5, 2.0, 0.2, 1 Velocity_WalkFwdDamaged = 2.2, 3.0, 2.0, 0.5, 2.0 Velocity_WalkFwdNormal = 2.5, 3.2, 1.2, 0.02, 3.0 ;--> Velocity_Drag = 2.0, 3.0, 3.0, 1, 1 Velocity_Steal = 2.0, 3.0, 2.0, 1, 1 Velocity_Rotate = 8.0, 9.0, 1.0, 0.3 1 Velocity_JumpGround = 16.0, 3.5, 2.0, 0.4, 1 Velocity_JumpStart = 16.0, 3.5, 2.0, 0.4, 1 Accel_Generic = 1.5 Accel_Calm = 3.5 Accel_Aggressive = 9.5 ;------------------------------------------------------------------------ ; Attack specific ;------------------------------------------------------------------------ prediction_factor = 0.1 attack_radius = 1 ;12 ; run around radius prepare_jump_timeout = 0 ; ms attack_jump_timeout = 0 ; ms stealth_timeout = 0 ; ms num_attack_jumps = 1 num_prepare_jumps = 0 ;-------------------------------------------------------------------------- ; Attack parameters ;-------------------------------------------------------------------------- MinAttackDist = 1.8;1.2 ;0.5 MaxAttackDist = 4.8;2.7 ;3.8 as_min_dist = 1.2 as_step = 0.3 hit_type = wound ; type of attack ;-------------------------------------------------------------------------- ; Jump parameters ;-------------------------------------------------------------------------- jump_delay = 0 jump_factor = 2 jump_ground_trace_range = 1.5 jump_hit_trace_range = 2 jump_build_line_distance = 8.0 jump_min_distance = 0.1 jump_max_distance = 12.0 ; 20.0 ;--> jump_max_angle = 0.55 jump_max_height = 9.0 jump_auto_aim_factor = 0 ;------------------------------------------------------------------------- ; Entity Conditions ;------------------------------------------------------------------------- satiety_v = 0.0001 ;0.01 ;скорость уменьшения сытости со временем radiation_v = 0.00001 ;0.004 ;скорость уменьшения радиации satiety_power_v = 0.0001 ;0.01 ;увеличение силы при уменьшении сытости satiety_health_v = 0.0001 ;0.03 ;увеличение здоровья при уменьшении сытости satiety_critical = -1.0 ;0.25 ;критическое значения сытости (в процентах от 0..1) когда здоровье начианает уменьшаться radiation_health_v = 0.01 ;0.006 ;уменьшение здоровья при воздействии радиации morale_v = 0.01 ;скорость восстановления морали health_hit_part = 1.0 ;0.8 ;процент хита, уходящий на отнимание здоровья power_hit_part = 1.0 ;0.9 ;процент хита, уходящий на отнимание силы psy_health_v = 0.1 ;скорость восстановления psy-здоровья protections_sect = lurker_protections immunities_sect = lurker_immunities ;открытые раны bleeding_v = 0.04 ;потеря крови при номинальной ране в секунду wound_incarnation_v = 0.05 ;крутизна кривой заживления (какой процент раны останется после заживления в игровую секунду) min_wound_size = 0.01 ;Health from which to play injured animation DamagedThreshold = 0.2 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.001 ; увеличение сытости при 1 укусе eat_slice_weight = 10.0 ; уменьшение еды у трупа satiety_threshold = 0.5 ; below this value monster fill hunger ;------------------------------------------------------------------------- ; Morale ;------------------------------------------------------------------------- Morale_Hit_Quant = 0.2 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.4 ;--------------------------------------------------------- ; Sounds and sound parameters ;--------------------------------------------------------- sound_idle = monsters\lurker\idle_ sound_eat = monsters\biting\def_ ; eat_ sound_aggressive = monsters\lurker\breath_ sound_attack_hit = monsters\lurker\attack_hit_ sound_take_damage = monsters\lurker\hit_ sound_die = monsters\lurker\die_ sound_bkgnd = monsters\lurker\idle_ ;sound_threaten = monsters\biting\def_ ; threaten_ sound_threaten = monsters\lurker\attack_ sound_landing = monsters\biting\def_ sound_steal = monsters\biting\def_ sound_panic = monsters\lurker\idle_ sound_growling = monsters\lurker\idle_ sound_die_in_anomaly = monsters\lurker\die_ killer_clsids = Z_MINCER,Z_GALANT,ZS_BFUZZ,ZS_MBALD,ZS_GALAN,ZS_MINCE idle_sound_delay = 25000 ;5000 eat_sound_delay = 3000 attack_sound_delay = 1000 sound_distant_idle = ambient\soundscape\mutants\lurker\distant_ distant_idle_sound_delay = 50000 distant_idle_sound_range = 50.0 max_hear_dist = 70 SoundThreshold = 0.1 ; range [0..1] ;-------------------------------------------------------------------------- ; Lurker Damage ;-------------------------------------------------------------------------- ;bone_name = ,-1, ; - coefficient. change of hit (reduction of health) ; - coefficient. changes in the size of an open wound default = 0.75, -1, 0.6 hip = 1, -1, 0.25 spine = 0.9, -1, 0.1 ;--> spine_1 = 0.9, -1, 0.1 ;--> neck_r = 0.95, -1, 2.1 head_boss = 3.0, -1, 0.9 ;------------------------------------------------------------------------- ; Other Stuff (refactoring needed) ;------------------------------------------------------------------------- material = creatures\medium DynamicObjectsCount = 32 squad_attack_algorithm = 1 attack_effector = m_lurker_attack_effector critical_wound_threshold = -1 critical_wound_decrease_quant = 0. attack_params = m_lurker_attack_params step_params = m_lurker_step_params LegsCount = 4 damage = m_chimera_damage ;species of monster species = chimera community = lurker DayTime_Begin = 6 ;--> ; начала дня для монстра DayTime_End = 21 ;--> ; конец дня для монстра Min_Satiety = 0.00055 ; мин. норма сытости (меньше - уже голодный) Max_Satiety = 0.9 ; макс. норма сытости (больше - очень сытый) distance_to_corpse = 1.2 ;4.5 ; дист. до трупа, при которой он переходит в состояние еды ;------------------------------------------------------------------------- ; Vision ;------------------------------------------------------------------------- eye_fov = 110 ;140 eye_range = 110 ;50 vision_free_section = lurker_vision_free vision_danger_section = lurker_vision_danger ; ЗНАЧЕНИЯ visibility_threshold ДОЛЖНЫ БЫТЬ РАВНЫ для денжера и фри, ; иначе возникают артефакты с потерей видимости при переходе от денжера во фри. [lurker_vision_free] min_view_distance = 0.8 ; коэффициент, который множится на eye_range, в зависимости от угла max_view_distance = 1.0 ; коэффициент, который множится на eye_range, в зависимости от угла visibility_threshold = 100.0 ; значение, при достижении суммой которого объект считается видимым always_visible_distance = 0.6 time_quant = 0.001 decrease_value = 0.01 ; значение, на которое уменьшается вес, если объект попал в фрустум, но отсёкся по каким-то причинам velocity_factor = 0.5 luminocity_factor = 2.5 ; фактор освещения (только для Актёра) transparency_threshold = 0.25 [lurker_vision_danger] min_view_distance = 0.8 ; коэффициент, который множится на eye_range, в зависимости от угла max_view_distance = 1.6 ; коэффициент, который множится на eye_range, в зависимости от угла visibility_threshold = 100.0 ; значение, при достижении суммой которого объект считается видимым always_visible_distance = 0.6 time_quant = 0.001 decrease_value = 0.01 ; значение, на которое уменьшается вес, если объект попал в фрустум, но отсёкся по каким-то причинам velocity_factor = 0.5 luminocity_factor = 2.5 ; фактор освещения (только для Актёра) transparency_threshold = 0.25 [lurker_protections] hit_fraction_monster = 0.75 skin_armor = 0.1 ;--------------------------------------------------------------------------------------------------------------------------------------------- ; anim | time[0..1] | hit_power | impulse | impulse_dir (x,y,z) | Field of hit_test (left,right, bottom, top ) | Test Dist ;--------------------------------------------------------------------------------------------------------------------------------------------- [m_lurker_attack_params] ;--> jump_attack_1 = 0.3, 0.65, 60, 0.0, 1.0, 0.0, -1.6, 1.6, -1.6, 1.6, 2.5 [m_lurker_attack_effector] duality_h = 0.1; 0.01 duality_v = 0.01; 0.01 blur = 0.01 gray = 0.5 noise_intensity = 0.1;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.0,0.0 time = 3.00 time_attack = 0.05 ; fade in time_release = 0.50 ; fade out ; camera effects ce_time = 0.30 ;time ce_amplitude = 12.0 ce_period_number = 2.0 ce_power = 1.0 ;0.7 ; power [m_lurker_step_params] ;--------------------------------------------------------------------------- ; anim | Cycles | time1 | power1 | time2 | power2 | ;--------------------------------------------------------------------------- stand_walk_0 = 1, 0.01, 1, 0.25, 0.7, stand_run_fwd_0 = 1, 0.01, 1, 0.25, 0.6, ;--------------------------------------------------------------------------- ; IMMUNITIES ;--------------------------------------------------------------------------- [lurker_immunities] ;--> ;only control health from here, 0.1 means that the mutant will take %10 damage from the source? those are snork's values burn_immunity = 1.0 ;0.66 ; = 0.35 ;коэффициенты иммунитета strike_immunity = 1.0 ;0.0 shock_immunity = 2.0 ;0.12 ; = 0.1 wound_immunity = 0.45 ;0.35 ;0.02 radiation_immunity = 0.0 telepatic_immunity = 0.0 chemical_burn_immunity = 0.85 ; = 3.0 ; = 0.45 explosion_immunity = 0.9 ;0.8 ;0.1 fire_wound_immunity = 0.6 ;0.55 ;0.5 ;0.1 ;================================================================================= ; Terrain ;================================================================================= [lurker_terrain] ;255,255,255,255,30,40 255,000,255,255 ; 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, ;--======================================================================= ; Variants ;--======================================================================= ;--------------- ; Blue ;--------------- [lurker_1_weak]:m_lurker_e visual = monsters\lurker\lurker corpse_visual = monsters\lurker\lurker MaxHealthValue = 0.5 ; range [0..200] [lurker_1_normal]:m_lurker_e visual = monsters\lurker\lurker corpse_visual = monsters\lurker\lurker MaxHealthValue = 0.75 ; range [0..200] [lurker_1_strong]:m_lurker_e visual = monsters\lurker\lurker corpse_visual = monsters\lurker\lurker MaxHealthValue = 1.0 ; range [0..200] ;--------------- ; Brown ;--------------- [lurker_2_weak]:m_lurker_e visual = monsters\lurker\lurker2 corpse_visual = monsters\lurker\lurker2 MaxHealthValue = 0.5 ; range [0..200] [lurker_2_normal]:m_lurker_e visual = monsters\lurker\lurker2 corpse_visual = monsters\lurker\lurker2 MaxHealthValue = 0.75 ; range [0..200] [lurker_2_strong]:m_lurker_e visual = monsters\lurker\lurker2 corpse_visual = monsters\lurker\lurker2 MaxHealthValue = 1.0 ; range [0..200] ;--------------- ; Black ;--------------- [lurker_3_weak]:m_lurker_e visual = monsters\lurker\lurker3 corpse_visual = monsters\lurker\lurker3 MaxHealthValue = 0.5 ; range [0..200] [lurker_3_normal]:m_lurker_e visual = monsters\lurker\lurker3 corpse_visual = monsters\lurker\lurker3 MaxHealthValue = 0.75 ; range [0..200] [lurker_3_strong]:m_lurker_e visual = monsters\lurker\lurker3 corpse_visual = monsters\lurker\lurker3 MaxHealthValue = 1.0 ; range [0..200]