Divergent/mods/Boomsticks and Sharpsticks/gamedata/configs/items/weapons/w_sr2_m2.ltx

660 lines
24 KiB
Plaintext
Raw Normal View History

2024-03-17 20:18:03 -04:00
;------------------------------------------------------------------------------------------------
[wpn_sr2_m2]:identity_immunities,weapon_probability,default_weapon_params;wpn_glock_sounds
GroupControlSection = spawn_group
$npc = on
$prefetch = 8
scheduled = off
cform = skeleton
parent_section = wpn_sr2_m2
class = WP_LR300
slot = 2
animation_slot = 8
ef_main_weapon_type = 2
ef_weapon_type = 6
hand_dependence = 1
single_handed = 0
default_to_ruck = false
sprint_allowed = true
inv_name = st_wpn_sr2_m2
inv_name_short = st_wpn_sr2_m2
description = st_wpn_sr2_m2_descr
kind = w_smg
inv_weight = 1.800
cost = 93300
repair_type = pistol
weapon_class = assault_rifle
hud = wpn_sr2_m2_hud
visual = dynamics\weapons\wpn_sr2_m2\wpn_sr2_m2_world.ogf
position = -0.026, 0.055, -0.365 ;-0.026, -0.125, -0.1
orientation = -3, -5, 0
fire_point = 0.0, 0.020, 0.620
fire_point2 = 0.0, 0.188, 0.392
strap_bone0 = bip01_spine2
strap_bone1 = bip01_spine1
strap_position = -0.16, -0.10, 0.0 ; position (offset) and orientation of the weapon when it is strapped
strap_orientation = -10,-5,10 ; (3rd person view in degrees)
ph_mass = 3
grenade_flame_particles = weapons\generic_weapon01
flame_particles = ghost_particles\weapons\generic_smoke_eft_sil
smoke_particles = ghost_particles\weapons\flame_eft_ak
silencer_smoke_particles = ghost_particles\weapons\generic_smoke_eft_sil
shell_point = 0.0, 0.133, 0.047
shell_dir = 0.0, 0.0, 0.4
shell_particles = weapons\9x19
light_disabled = false
light_color = 0.6, 0.5, 0.3
light_range = 5
light_time = 0.2
light_var_color = 0.05
light_var_range = 0.5
upgrades = up_gr_firstab_mp5, up_gr_seconab_mp5, up_gr_thirdab_mp5, up_gr_fourtab_mp5
installed_upgrades =
upgrade_scheme = upgrade_scheme_mp5_nimble
inv_grid_width = 4
inv_grid_height = 2
inv_grid_x = 72
inv_grid_y = 11
icons_texture = ui\ui_icon_bas
fire_modes = 1, -1
ammo_class = ammo_9x21_sp10
ammo_elapsed = 30
ammo_mag_size = 30
startup_ammo = 90
scopes = ac10632, eot, c-more, 0kp2, d0cter, point_aimpro, aim_low, e0t2, rmr, deltapoint, compm4s, rakurs, kemper, aimpoint, ekp8_18, mepro, pn23, acog, specter
scope_status = 0
scope_zoom_factor = 0
silencer_name = wpn_sil_veresk
silencer_status = 2
silencer_x = 175
silencer_y = 8
silencer_light_color = 0.6, 0.5, 0.3
silencer_light_range = 0.01
silencer_light_time = 0.2
silencer_light_var_color = 0.05
silencer_light_var_range = 0.5
grenade_class = ammo_vog-25, ammo_vog-25_bad, ammo_vog-25_verybad
grenade_launcher_name = wpn_addon_grenade_launcher
grenade_launcher_status = 0
grenade_launcher_x = 126
grenade_launcher_y = 24
launch_speed = 0
hit_impulse = 50
hit_power = 0.49, 0.49, 0.49, 0.49
hit_type = fire_wound
fire_distance = 400
bullet_speed = 400
rpm = 990
rpm_empty_click = 200
ap_modifier = 1.1
use_aim_bullet = false
time_to_aim = 0.0 ; 3.0
zoom_dof = 0.5, 1.0, 180
zoom_enabled = true
zoom_rotate_time = 0.25
reload_dof = 0.0, 0.5, 5, 2
control_inertion_factor = 1.0f
crosshair_inertion = 4.35
fire_dispersion_base = 0.24
fire_dispersion_condition_factor = 0.001
inertion_origin_aim_offset = -0.03
inertion_origin_offset = -0.05
inertion_tendto_aim_speed = 8
inertion_tendto_speed = 5
misfire_probability = 0.005
misfire_start_condition = 0.7 ; 0.8
misfire_start_prob = 0.005
misfire_end_condition = 0.1
misfire_end_prob = 0.09
condition_queue_shot_dec = 0.0008
condition_shot_dec = 0.0008
cam_return = 0
cam_relax_speed = 5
cam_dispersion = 0.8
cam_dispersion_frac = 1.0
cam_dispersion_inc = 0.0475
cam_max_angle = 50.0
cam_max_angle_horz = 50.0
cam_step_angle_horz = 1.0
zoom_cam_relax_speed = 10
zoom_cam_dispersion = 0.35
zoom_cam_dispersion_frac = 0.8
zoom_cam_dispersion_inc = 0.0325
zoom_cam_max_angle = 50.0
zoom_cam_max_angle_horz = 50.0
zoom_cam_step_angle_horz = 1.0
PDM_disp_accel_factor = 1.5
PDM_disp_base = 0.5
PDM_disp_crouch = 1.0
PDM_disp_crouch_no_acc = 1.0
PDM_disp_vel_factor = 1.5
cam_relax_speed_ai = 120.75
zoom_cam_relax_speed_ai = 120.75
holder_fov_modifier = 1.0
holder_range_modifier = 1.0
min_radius = 0
max_radius = 500
hit_probability_gd_novice = 1.00
hit_probability_gd_stalker = 1.00
hit_probability_gd_veteran = 1.00
hit_probability_gd_master = 1.00
kill_msg_x = 72
kill_msg_y = 82
kill_msg_width = 56
kill_msg_height = 23
hud_fov = 0.78
scope_zoom_factor_alt = 0
use_alt_aim_hud = true
laser_status = true
;-----------------------------------------------------------------SOUNDS-------------------------------------------------------------------------------
snd_bore = $no_sound
snd_draw = weapons\sr2m\sr2m_draw
snd_holster = weapons\sr2m\sr2m_holster
snd_empty = weapons\sr2m\sr2m_empty
snd_reload = eft_wp\glock17\glock17_reload_speed, 1.5
snd_reload_empty = weapons\sr2m\sr2m_reload_empty
snd_shoot = weapons\sr2m\sr2m_shoot
snd_silncer_shot = weapons\sr2m\sr1m_shoot_sil
snd_switch_mode = weapons\generic\switch_mode
;---------------------------------------------------------------------HUD-------------------------------------------------------------------------------
[wpn_sr2_m2_hud]:hud_base
item_visual = dynamics\weapons\wpn_sr2_m2\wpn_sr2_m2_hud.ogf
attach_place_idx = 0
zoom_hide_crosshair = true
;-------
item_position = -0.000143,-0.001045,-0.006608
item_orientation = -0.004905,-1.588897,0.007997
aim_hud_offset_pos_16x9 = -0.045410,0.041240,-0.028130
aim_hud_offset_rot_16x9 = 0.008100,0.007700,-0.121000
hands_position_16x9 = 0.072700,-0.087800,-0.126900
hands_orientation_16x9 = 0.626998,1.960000,-7.317074
;-------
aim_hud_offset_alt_pos_16x9 = -0.089211,-0.042760,-0.005200
aim_hud_offset_alt_rot_16x9 = 0.003100,0.013700,0.677504
hands_position = -0.072000, -0.172, 0.165500
hands_orientation = 0.55, 2.39, 0.1499993
aim_hud_offset_pos = -0.0793, 0.0579, -0.265
aim_hud_offset_rot = 0.038, 0.008, -0.004
gl_hud_offset_pos = 0, 0, 0
gl_hud_offset_pos_16x9 = 0, 0, 0
gl_hud_offset_rot = 0, 0, 0
gl_hud_offset_rot_16x9 = 0, 0, 0
lean_hud_offset_pos = 0, 0, 0
lean_hud_offset_rot = 0, 0, 0
lowered_hud_offset_pos_16x9 = 0.1,0,0
lowered_hud_offset_rot_16x9 = 0.1,-0.8,0.1
anm_show = kyky_sr2m_draw
anm_hide = kyky_sr2m_holster
anm_idle = kyky_sr2m_idle, idle
anm_idle_sprint = kyky_sr2m_idle_sprint
anm_idle_moving = kyky_sr2m_idle_move
anm_shots = kyky_sr2m_shoot, shoot
anm_reload = kyky_sr2m_reload, reload
anm_reload_empty = kyky_sr2m_reload_empty, reload_empty
anm_idle_aim = kyky_sr2m_idle_aim, idle
anm_bore = kyky_sr2m_idle_aim, idle
shell_dir = 0.0, 1.0, 0.0
shell_bone = wpn_body
fire_bone = wpn_body
fire_point = 0.000000,0.037504,0.189238
shell_point = -0.010000,0.000000,0.010000
freelook_z_offset_mul = 0.3
;-------------------------------------------------------------------------------------Addons------------
[wpn_sr2_m2_ac10632]:wpn_sr2_m2
inv_weight = 1.910
hud = wpn_sr2_m2_ac10632_hud
1icon_layer = ac10632
1icon_layer_x = 85
1icon_layer_y = -12
visual = dynamics\weapons\wpn_sr2_m2\wpn_sr2_m2_world.ogf
[wpn_sr2_m2_ac10632_hud]:wpn_sr2_m2_hud
item_visual = dynamics\weapons\wpn_sr2_m2\wpn_sr2_m2_ac10632_hud.ogf
aim_hud_offset_pos_16x9 = -0.044710,0.011940,-0.028130
aim_hud_offset_rot_16x9 = 0.001100,0.007200,-0.136000
;-----------------------------------------------------------------------------
[wpn_sr2_m2_eot]:wpn_sr2_m2
inv_weight = 2.100
hud = wpn_sr2_m2_eot_hud
1icon_layer = eot
1icon_layer_x = 128
1icon_layer_y = -10
visual = dynamics\weapons\wpn_sr2_m2\wpn_sr2_m2_world.ogf
[wpn_sr2_m2_eot_hud]:wpn_sr2_m2_hud
item_visual = dynamics\weapons\wpn_sr2_m2\wpn_sr2_m2_eot_hud.ogf
aim_hud_offset_pos_16x9 = -0.044710,0.010340,-0.028130
aim_hud_offset_rot_16x9 = 0.001100,0.007200,-0.136000
;-----------------------------------------------------------------------------
[wpn_sr2_m2_c-more]:wpn_sr2_m2
inv_weight = 2.100
hud = wpn_sr2_m2_c-more_hud
1icon_layer = c-more
1icon_layer_x = 128
1icon_layer_y = -10
visual = dynamics\weapons\wpn_sr2_m2\wpn_sr2_m2_world.ogf
[wpn_sr2_m2_c-more_hud]:wpn_sr2_m2_hud
item_visual = dynamics\weapons\wpn_sr2_m2\wpn_sr2_m2_c-more_hud.ogf
aim_hud_offset_pos_16x9 = -0.045210,0.014740,-0.028130
aim_hud_offset_rot_16x9 = 0.001100,0.007200,-0.136000
;---------------------------------------------------------------------------------
[wpn_sr2_m2_aim_low]:wpn_sr2_m2
visual = dynamics\weapons\wpn_sr2_m2\wpn_sr2_m2_world.ogf
hud = wpn_sr2_m2_aim_low_hud
inv_weight = 1.900
1icon_layer = aim_low
1icon_layer_x = 128
1icon_layer_y = -6
[wpn_sr2_m2_aim_low_hud]:wpn_sr2_m2_hud
item_visual = dynamics\weapons\wpn_sr2_m2\wpn_sr2_m2_aim_low_hud.ogf
aim_hud_offset_pos_16x9 = -0.046010,0.019340,-0.028130
aim_hud_offset_rot_16x9 = 0.001100,0.007200,-0.136000
hands_position_16x9 = 0.072700,-0.080000,-0.126900
hands_orientation_16x9 = 0.626998,1.960000,-7.317074
;-------------------------------------------------------------------------------------------------------------------------------
[wpn_sr2_m2_point_aimpro]:wpn_sr2_m2
visual = dynamics\weapons\wpn_sr2_m2\wpn_sr2_m2_world.ogf
hud = wpn_sr2_m2_point_aimpro_hud
inv_weight = 2.130
1icon_layer = point_aimpro
1icon_layer_x = 100
1icon_layer_y = -16
[wpn_sr2_m2_point_aimpro_hud]:wpn_sr2_m2_hud
item_visual = dynamics\weapons\wpn_sr2_m2\wpn_sr2_m2_aimpoint_pro_hud.ogf
aim_hud_offset_pos_16x9 = -0.044710,0.005140,-0.028130
aim_hud_offset_rot_16x9 = 0.001100,0.007200,-0.136000
hands_position_16x9 = 0.072700,-0.089100,-0.126900
hands_orientation_16x9 = 0.626998,1.960000,-7.317074
;-------------------------------------------------------------------------------------------------------------------------------
[wpn_sr2_m2_ekp8_18]:wpn_sr2_m2
visual = dynamics\weapons\wpn_sr2_m2\wpn_sr2_m2_world.ogf
hud = wpn_sr2_m2_ekp8_18_hud
inv_weight = 2.070
1icon_layer = ekp8_18
1icon_layer_x = 82
1icon_layer_y = -2
[wpn_sr2_m2_ekp8_18_hud]:wpn_sr2_m2_hud
item_visual = dynamics\weapons\wpn_sr2_m2\wpn_sr2_m2_ekp8_18_hud.ogf
aim_hud_offset_pos_16x9 = -0.044910,0.000040,-0.028130
aim_hud_offset_rot_16x9 = -0.000400,0.006200,-0.121000
;-------------------------------------------------------------------------------------------------------------------------------
[wpn_sr2_m2_d0cter]:wpn_sr2_m2
visual = dynamics\weapons\wpn_sr2_m2\wpn_sr2_m2_world.ogf
hud = wpn_sr2_m2_d0cter_hud
inv_weight = 1.830
1icon_layer = d0cter
1icon_layer_x = 128
1icon_layer_y = -10
[wpn_sr2_m2_d0cter_hud]:wpn_sr2_m2_hud
item_visual = dynamics\weapons\wpn_sr2_m2\wpn_sr2_m2_docter_hud.ogf
aim_hud_offset_pos_16x9 = -0.044610,0.022640,-0.028130
aim_hud_offset_rot_16x9 = 0.002600,0.007200,-0.136000
hands_position_16x9 = 0.071900,-0.083000,-0.126900
hands_orientation_16x9 = 0.626998,1.960000,-7.317074
;-------------------------------------------------------------------------------------------------------------------------------
[wpn_sr2_m2_mepro]:wpn_sr2_m2
visual = dynamics\weapons\wpn_sr2_m2\wpn_sr2_m2_world.ogf
hud = wpn_sr2_m2_mepro_hud
inv_weight = 2.170
1icon_layer = mepro
1icon_layer_x = 128
1icon_layer_y = -8
[wpn_sr2_m2_mepro_hud]:wpn_sr2_m2_hud
item_visual = dynamics\weapons\wpn_sr2_m2\wpn_sr2_m2_mepro_hud.ogf
aim_hud_offset_pos_16x9 = -0.045610,0.001040,-0.028130
aim_hud_offset_rot_16x9 = 0.000100,0.007200,-0.136000
;-------------------------------------------------------------------------------------------------------------------------------
[wpn_sr2_m2_0kp2]:wpn_sr2_m2
1icon_layer = 0kp2
1icon_layer_x = 85
1icon_layer_y = -4
hud = wpn_sr2_m2_0kp2_hud
visual = dynamics\weapons\wpn_sr2_m2\wpn_sr2_m2_world.ogf
inv_weight = 2.00
[wpn_sr2_m2_0kp2_hud]:wpn_sr2_m2_hud
item_visual = dynamics\weapons\wpn_sr2_m2\wpn_sr2_m2_0kp2_hud.ogf
aim_hud_offset_pos_16x9 = -0.042810,0.018440,-0.028130
aim_hud_offset_rot_16x9 = 0.001100,0.007200,-0.136000
;---------------------------------------------------------------------------------------------------
[wpn_sr2_m2_e0t2]:wpn_sr2_m2
1icon_layer = e0t2
1icon_layer_x = 82
1icon_layer_y = -14
hud = wpn_sr2_m2_e0t2_hud
visual = dynamics\weapons\wpn_sr2_m2\wpn_sr2_m2_world.ogf
inv_weight = 2.025
[wpn_sr2_m2_e0t2_hud]:wpn_sr2_m2_hud
item_visual = dynamics\weapons\wpn_sr2_m2\wpn_sr2_m2_e0t2_hud.ogf
aim_hud_offset_pos_16x9 = -0.044710,0.010740,-0.028130
aim_hud_offset_rot_16x9 = 0.001100,0.007200,-0.136000
;---------------------------------------------------------------------------------------------------
[wpn_sr2_m2_rmr]:wpn_sr2_m2
1icon_layer = rmr
1icon_layer_x = 120
1icon_layer_y = -6
hud = wpn_sr2_m2_rmr_hud
visual = dynamics\weapons\wpn_sr2_m2\wpn_sr2_m2_world.ogf
inv_weight = 1.830
[wpn_sr2_m2_rmr_hud]:wpn_sr2_m2_hud
item_visual = dynamics\weapons\wpn_sr2_m2\wpn_sr2_m2_rmr_hud.ogf
aim_hud_offset_pos_16x9 = -0.045210,0.021240,-0.028130
aim_hud_offset_rot_16x9 = 0.002600,0.007200,-0.136000
hands_position_16x9 = 0.072700,-0.083600,-0.126900
hands_orientation_16x9 = 0.626998,1.960000,-7.317074
;---------------------------------------------------------------------------------------------------
[wpn_sr2_m2_deltapoint]:wpn_sr2_m2
1icon_layer = deltapoint
1icon_layer_x = 128
1icon_layer_y = -6
hud = wpn_sr2_m2_deltapoint_hud
visual = dynamics\weapons\wpn_sr2_m2\wpn_sr2_m2_world.ogf
inv_weight = 1.840
[wpn_sr2_m2_deltapoint_hud]:wpn_sr2_m2_hud
item_visual = dynamics\weapons\wpn_sr2_m2\wpn_sr2_m2_deltapoint_hud.ogf
aim_hud_offset_pos_16x9 = -0.044710,0.019640,-0.028130
aim_hud_offset_rot_16x9 = 0.001600,0.007200,-0.136000
;---------------------------------------------------------------------------------------------------N
[wpn_sr2_m2_compm4s]:wpn_sr2_m2
hud = wpn_sr2_m2_compm4s_hud
visual = dynamics\weapons\wpn_sr2_m2\wpn_sr2_m2_world.ogf
1icon_layer = compm4s
1icon_layer_x = 85
1icon_layer_y = -16
inv_weight = 2.160
[wpn_sr2_m2_compm4s_hud]:wpn_sr2_m2_hud
item_visual = dynamics\weapons\wpn_sr2_m2\wpn_sr2_m2_compm4s_hud.ogf
aim_hud_offset_pos_16x9 = -0.044710,0.010140,-0.028130
aim_hud_offset_rot_16x9 = 0.001100,0.007200,-0.136000
;--------------------------------------------------------------------------------------------
[wpn_sr2_m2_rakurs]:wpn_sr2_m2
hud = wpn_sr2_m2_rakurs_hud
visual = dynamics\weapons\wpn_sr2_m2\wpn_sr2_m2_world.ogf
1icon_layer = rakurs
1icon_layer_x = 90
1icon_layer_y = -10
inv_weight = 2.300
[wpn_sr2_m2_rakurs_hud]:wpn_sr2_m2_hud
item_visual = dynamics\weapons\wpn_sr2_m2\wpn_sr2_m2_rakurs_hud.ogf
aim_hud_offset_pos_16x9 = -0.044510,0.021240,-0.028130
aim_hud_offset_rot_16x9 = 0.001100,0.007200,-0.136000
;-----------------------------------------------------------------------------------------------------
[wpn_sr2_m2_kemper]:wpn_sr2_m2
inv_weight = 2.060
hud = wpn_sr2_m2_kemper_hud
1icon_layer = kemper
1icon_layer_x = 120
1icon_layer_y = -14
visual = dynamics\weapons\wpn_sr2_m2\wpn_sr2_m2_world.ogf
scope_status = 0
scope_dynamic_zoom = off
[wpn_sr2_m2_kemper_hud]:wpn_sr2_m2_hud
item_visual = dynamics\weapons\wpn_sr2_m2\wpn_sr2_m2_kemper_hud.ogf
aim_hud_offset_pos_16x9 = -0.044710,0.007140,-0.028130
aim_hud_offset_rot_16x9 = 0.001100,0.007200,-0.136000
;------------------------------------------------------------------------------------------------
[wpn_sr2_m2_aimpoint]:wpn_sr2_m2
visual = dynamics\weapons\wpn_sr2_m2\wpn_sr2_m2_world.ogf
hud = wpn_sr2_m2_aimpoint_hud
inv_weight = 1.930
1icon_layer = aimpoint
1icon_layer_x = 90
1icon_layer_y = -14
[wpn_sr2_m2_aimpoint_hud]:wpn_sr2_m2_hud
item_visual = dynamics\weapons\wpn_sr2_m2\wpn_sr2_m2_aimpoint_hud.ogf
aim_hud_offset_pos_16x9 = -0.045010,0.008740,-0.028130
aim_hud_offset_rot_16x9 = 0.000600,0.007200,-0.136000
;------------------------------------------------------------------------------------------------
[wpn_sr2_m2_pn23]:wpn_sr2_m2
visual = dynamics\weapons\wpn_sr2_m2\wpn_sr2_m2_world.ogf
hud = wpn_sr2_m2_pn23_hud
1icon_layer = pn23
1icon_layer_x = 60
1icon_layer_y = -14
nv_scope_status = 1
inv_weight = 2.530
scope_status = 1
scope_texture = wpn_crosshair_pn23
scope_zoom_factor = 25
zoom_rotate_time = 0.25
[wpn_sr2_m2_pn23_hud]:wpn_sr2_m2_hud
item_visual = dynamics\weapons\wpn_sr2_m2\wpn_sr2_m2_pn23_hud.ogf
aim_hud_offset_pos_16x9 = -0.052210,0.010240,-0.015530
aim_hud_offset_rot_16x9 = 0.001100,0.007200,-0.136000
hands_position_16x9 = 0.080700,-0.093400,-0.113100
hands_orientation_16x9 = 0.626998,1.960000,-7.317074
;------------------------------------------------------------------------------------------------
[wpn_sr2_m2_acog]:wpn_sr2_m2
visual = dynamics\weapons\wpn_sr2_m2\wpn_sr2_m2_world.ogf
$spawn = "weapons\wpn_sr2_m2_acog"
1icon_layer = acog
1icon_layer_x = 79
1icon_layer_y = -10
inv_weight = 2.150
scope_status = 1
scope_texture = wpn_crosshair_acog
scope_zoom_factor = 25
zoom_rotate_time = 0.25
hud = wpn_sr2_m2_acog_hud
[wpn_sr2_m2_acog_hud]:wpn_sr2_m2_hud
item_visual = dynamics\weapons\wpn_sr2_m2\wpn_sr2_m2_acog_hud.ogf
aim_hud_offset_pos_16x9 = -0.044710,0.014240,-0.035830
aim_hud_offset_rot_16x9 = 0.001100,0.007200,-0.136000
hands_position_16x9 = 0.072700,-0.090700,-0.128200
hands_orientation_16x9 = 0.626998,1.960000,-7.317074
;-------------------------------------------------------------------------------
[wpn_sr2_m2_specter]:wpn_sr2_m2
$spawn = "weapons\wpn_sr2_m2_specter"
visual = dynamics\weapons\wpn_sr2_m2\wpn_sr2_m2_world.ogf
hud = wpn_sr2_m2_specter_hud
1icon_layer = specter
1icon_layer_x = 60
1icon_layer_y = -10
inv_weight = 2.470
scope_status = 1
scope_texture = wpn_crosshair_specter
scope_zoom_factor = 25
zoom_rotate_time = 0.25
scope_dynamic_zoom = off
[wpn_sr2_m2_specter_hud]:wpn_sr2_m2_hud
item_visual = dynamics\weapons\wpn_sr2_m2\wpn_sr2_m2_specter_hud.ogf
aim_hud_offset_pos_16x9 = -0.046810,0.011840,-0.039430
aim_hud_offset_rot_16x9 = 0.001100,0.007200,-0.136000
hands_position_16x9 = 0.074700,-0.090200,-0.126900
hands_orientation_16x9 = 0.626998,1.960000,-7.317074
;--------------------------------------------------------------------------------