WeaponData
{
	"OnWeaponReload"									"OnWeaponReload_Tediore"
	
	// :D
	"projectilemodel" 								"models/domestic/nessy_doll.mdl"

	//"damage_flags"									"DF_BULLET | DF_KNOCK_BACK | DF_DISMEMBERMENT | DF_GIB"

	//smart ammo
	"smart_ammo_search_projectiles"					"0"
	"smart_ammo_titans_block_los"					"1"

	// Tediore Reload Stuff
	"projectile_gravity_scale"						"1"

	"sound_throw_1p"								"Pilot_Hardcover_Toss_1P"
	"sound_throw_3p"								"weapon_sentryfragdrone_throw_3p"
	"sound_grenade_projectile"						"weapon_sentryfragdrone_warmup"

	"grenade_fuse_time"								"3"
	"bounce_effect_table"							"deployable_cover_bounce_table"
	"grenade_bounce_vel_frac_shallow"				"0.5"
	"grenade_bounce_vel_frac_sharp"					"0.3"
	"grenade_bounce_vel_frac_along_normal"			"0.1"
	"grenade_bounce_randomness"						"0.05"
	"grenade_bounce_extra_vertical_randomness"		"0.0"
	"grenade_roll_vel_frac_per_second"				"0.1"

	// bolt rework! will cause replay fucked up
	//"projectile_launch_speed"						"10000"
	//"projectile_gravity_scale"						"0.2500"

	//"bolt_speed"						"1"
	
	// don't try to change these
	//"bolt_gravity_enabled"				"0"
	//"bolt_gravity_amount"				"0"

	Mods
	{
		iron_sights
		{
		}
		scope_4x
		{	
		}
		extended_ammo
		{
			"ammo_clip_size"   					"*1.75"
		}
		stabilizer // actually "no_ironsight_weapon", using it so client can have "no scope" visual
		{
			"bodygroup5_set"	"0"
		}
		ricochet
		{
		}
        slammer
        {
        }
		threat_scope
		{
			//"bodygroup1_set"	"1"
			//"bodygroup2_set"	"0"

			//"viewmodel_offset_ads"			"0 -0.3 0" // apex like
		}
		pro_screen
		{
		}
		tactical_cdr_on_kill
		{
		}
        pas_fast_reload
        {
        }
		pas_fast_ads
		{
		}
		pas_fast_swap
		{
		}
		burn_mod_sniper
		{
			"damage_near_value"   							"++100"
			"damage_far_value"								"++100"
		}
        pve_elite // vanilla has nowhere used it, I'll use this for sniper grunts
        {
			"npc_damage_near_value"   						"++1" // 50. no more one-headshot kill (was 60, 70 or 89)
        	"npc_damage_far_value"							"++1" // 50. no more one-headshot kill (was 60, 70 or 89)

			// remove by-pass titanarmor
			//"titanarmor_critical_hit_required"          	"0"
			//"damage_near_value_titanarmor"					"++610" // 660
			//"damage_far_value_titanarmor" 					"++610" // 660

			"npc_accuracy_multiplier_pilot"					"++2.0" // 3.0
        }

		// nessy
		// ADS mostly fucked for whatever
		// maybe use together with stabilizer for no-sniper-scope view...
		// TOO BAD is that we can't use this without client-side install because respawn hardcoded some muzzle flash on client-side
		fake_nessy_weapon
		{
			"viewmodel"   									"models/weapons/pstl_sa3/ptpov_pstl_sa3.mdl"
			// we'll also have a script for adding fake model to the weapon
			// FFS this cannot be changed, otherwise npcs will crash client-side without mod installed
			// just make sure weapon drops are disabled when using this
			//"playermodel" 									"models/weapons/pstl_sa3/w_pstl_sa3.mdl"
			// projectile model change in script

			// mozambique cannot rechamber
			// guess we changing it to a fake behavior: merge reload time into base rechamber time
			// this equals to infinite ammo clip, at a cost of lower fire rate
			// not compatible with extended ammo
			"ammo_clip_size"   								"1" // causes desync on manual reload but whatever
			"rechamber_time"  								"0"
			// 2.225 = 1.60(kraber's rechamber_time) + 2.5(kraber's reload_time) / 4(kraber's ammo_clip_size)
			// this fake reload shouldn't be interruptable like rechambering... but whatever, just to compensate
			"reload_time" 									"2.225"
			"reload_time_late1" 							"1.1125" // 2.225 / 2.1(mozambique's reload_time) * 1.05(mozambique's reload_time_late1)
			"reloadempty_time"								"2.225"
			"reloadempty_time_late1"						"1.1125" // 2.225 / 2.1(mozambique's reloadempty_time) * 1.05(mozambique's reloadempty_time_late1)
		
			// due that we're already modifying client-side, let's just remove scope
			"bodygroup_ads_scope_set"						"0"
		}

		// modded weapons
		//smart_sniper
		//{
		//	"rui_crosshair_index"					"1"

		//	"ammo_clip_size"   						"--7" // infinite
			
			//smart ammo
		//	"smart_ammo_weapon_type"						"homing_missile"
		//	"smart_ammo_search_distance"  					"15000"
		//	"smart_ammo_max_targets"						"1" // was default value. don't know how many
		//  "smart_ammo_max_targeted_burst"					"1" // was 7
		//	"smart_ammo_targeting_time_min"					"0.45"//"0.37"
		//	"smart_ammo_targeting_time_max"					"0.8"//"0.65"
		//	"smart_ammo_targeting_time_min_npc"				"0.1"
		//	"smart_ammo_targeting_time_max_npc"				"0.2"
		//	"smart_ammo_allow_search_while_firing"			"1"
		//	"smart_ammo_allow_ads_lock"						"1" // "0" is default
		//	"smart_ammo_search_angle" 						"35"
		//	"smart_ammo_search_npcs"						"1"
		//	"smart_ammo_search_players"						"1"
		//	"smart_ammo_track_cloaked_targets"				"0"
		//	"smart_ammo_targeting_time_modifier_projectile_owner"	"0.35"
		//	"smart_ammo_target_max_locks_normal"			"-1"	// divide health by damage near
		//	"smart_ammo_target_npc_lock_factor"				"2"		// smart pistol does head shots at 2x damage
		//	"smart_ammo_new_target_delay"					"0.1"
		//	"smart_ammo_draw_acquisition_lines"				"1"
		//	"smart_ammo_hud_lock_style"						"pilot_pistol"
		//	"smart_ammo_hud_type" 							"smart_pistol"
		//	"smart_ammo_target_confirmed_sound"				"Weapon_SmartPistol_PilotLocked"
		//	"smart_ammo_target_confirming_sound"			"Weapon_SmartPistol_PilotLocked"
		//	"smart_ammo_looping_sound_acquiring"			"Weapon_SmartPistol_TargetLockingLoop"
		//	"smart_ammo_lock_type"							"small"
		//	"smart_ammo_alert_npc_fraction"					"1.1" 	// unaware since lock on fraction will not go above 1
		//	"smart_ammo_allow_hip_fire_lock"				"1"
		//	"smart_ammo_lock_effect_3p"						"P_smartpistol_lockon"
		//	"smart_ammo_lock_effect_attachment"				"muzzle_flash"
		//	"smart_ammo_player_targets_must_be_tracked"		"0"
		//	"smart_ammo_npc_targets_must_be_tracked"		"0"
		//	"smart_ammo_tracker_status_effects"				"1"
		//	"smart_ammo_tracked_targets_check_visibility"	"1"
		//}

		//homing_nessie // use together with smart_sniper
		//{
		//	"projectile_trail_effect_0" 					"wpn_grenade_frag_softball"
		//}

		tediore_reload
		{
		}
		tediore_effect // required to get it's unique explosion status
		{
			// required for throwing a grenade
			"projectile_launch_speed"		"500"
			"projectile_trail_effect_0"		"wpn_grenade_frag"
			"projectile_inherit_owner_velocity_scale"		"1.0"

			"impact_effect_table"			"exp_satchel"
			"explosion_damage"				"125"
			"explosion_damage_heavy_armor"	"2200"
			"explosionradius"				"250"
			"explosion_inner_radius"		"120"
			"impulse_force"   				"500"
			"impulse_force_explosions"		"50000"
		}
		tediore_deployable_cover // use together with tediore_reload
		{
			"projectile_gravity_scale"		"++2"
			"grenade_fuse_time"				"0.0"
			"explosion_damage"				"*0"
			"explosion_damage_heavy_armor"	"*0"
		}

        //ricochet_only_sniper
        //{
        	//Damage When Used By Players
        //	"damage_near_value"   							"--349"
		//	"damage_far_value"								"--349"
		//	"damage_headshot_scale"							"100"

		//	"bolt_bounce_frac"								"1.0"
		//	"projectile_damage_reduction_per_bounce"		"--100"
		//	"projectile_damages_owner"						"1"
		//	"projectile_ricochet_max_count"					"10"
        //}

        //floating_bolt_sniper
        //{
        	//Damage When Used By Players
        //	"damage_near_value"   							"--350"
		//	"damage_far_value"								"--350"
		//	"damage_headshot_scale"							"1"

		//	"bolt_bounce_frac"								"1.0"
		//	"projectile_damage_reduction_per_bounce"		"--1"
		//	"projectile_damages_owner"						"1"
		//	"projectile_ricochet_max_count"					"10000"
			// Projectile
		//	"projectile_launch_speed"                  		"0.001"
        //}

        ricochet_infinite_sniper
        {
			"bolt_bounce_frac"								"1.0"
			"projectile_damage_reduction_per_bounce"		"--1"
			"projectile_damages_owner"						"1"
			"projectile_ricochet_max_count"					"50" // was 10000, but sometimes projectile stuck and makes it too annoying
			"projectile_gravity_scale"						"0.0"
        }
        explosive_sniper
        {
        	"explosion_damage"							"75"
			"explosion_damage_heavy_armor"				"200"
			"explosion_inner_radius"  					"100"
			"explosionradius" 							"225"
			//"impact_effect_table" 					"40mm_splasher_rounds" // visual fix done in script
			// splasher rounds can be too loud, change to use this
			"impact_effect_table" 						"exp_softball_grenade" // visual fix done in script

			"pass_through_depth"						"*0" // no pass through for explosive rounds
        }

		//nessie_sniper
		//{
		//}

        //phase_sniper
        //{
        //}

        //heal_sniper
        //{
        //}

        //stim_sniper
    	//{
		//	"damage_near_value"   							"--349"
		//	"damage_far_value"								"--349"
        //}

		vanilla_stabilizer // vanilla "stabilizer"
		{
			"bodygroup1_set"	"0"
			"bodygroup_ads_scope_set"	"0" // scope sight
			"bodygroup5_set"	"1"
			"ui5_enable"		"1"

			"viewmodel_offset_ads"							"0 -2.95 0.31"
			//"viewmodel_offset_lerp_endFrac"					"1"

			"threat_scope_enabled"		"1"
			"threat_scope_bounds_tagname1"	"SCR_TR_ORACLE"
			"threat_scope_bounds_tagname2"	"SCR_BL_ORACLE"

			"ads_fov_zoomfrac_start"						"0.3"
			"ads_fov_zoomfrac_end"							"0.8"

			"zoom_fov"			"35"

			"dof_zoom_nearDepthStart"						"7.0"
			"dof_zoom_nearDepthEnd"							"7.2"

			"anim_alt_idleAttack"	"1"
		}
		fake_stabilizer // bodygroup only
		{
			"bodygroup1_set"	"0"
			"bodygroup5_set"	"1"
		}
		fake_threat_scope // bodygroup only
		{
			"bodygroup1_set"	"0"
			"bodygroup2_set"	"1"
		}

		// temp removed for now
		//friendlyfire_weapon
		//{
		//}

		//titandamage_weapon
		//{
		//	"titanarmor_critical_hit_required"          "0"
		//}

		// should've handled by "stabilizer"
		// no_ironsight_weapon // should do a check in script to avoid using together with other optics
		// {
			// bodygroup
		// 	"bodygroup1_set"	"0" // stock scope
		// 	"bodygroup_ads_scope_set"	"0" // scope sight
		// }

		bleedout_balance
		{
			// version 1:
			// pass throughs shields. much slower rechamber ( removed the ability that can one shot default knockdown shields, since knockdown shields can re-direct damage now )
			//"damage_near_value"   							"--200" // 150
			//"damage_far_value"								"--200" // 150
			//"damage_flags"									"DF_BULLET | DF_KNOCK_BACK | DF_DISMEMBERMENT | DF_BYPASS_SHIELD"
			//"rechamber_time"  								"++0.65" // 2.25

			//"reload_time"                              "3.5"
			//"reload_time_late1"                        "2.15"
			//"reload_time_late2"                        "2.15"
			//"reloadempty_time"                         "4.6"
			//"reloadempty_time_late1"                   "3.33"
			//"reloadempty_time_late2"                   "2.28"
			//"reloadempty_time_late3"                   "0.95"

			// version1 removed
			//"fire_rate"									"--0.2" // 1.65
			//"damage_near_value"   							"--125" // 225
			//"damage_far_value"								"--125" // 225
			//"damage_headshot_scale"							"++1.5" // 3.0

			// version 2:
			// faster fire-rate, lowered damage but can still kill non-shield target in one shot
			"damage_near_value"   							"--200" // 150
			"damage_far_value"								"--200" // 150
			"fire_rate"										"++0.25" // 2.1
			"rechamber_time"  								"--0.2" // 1.4
		}

		//nerfed_weapon // still one shot for 200HP, but fireRate reduced
		//{
		//	"damage_near_value"   			"--150" // 200, unable to kill a new-respawn player
		//	"damage_far_value"				"--150" // 200
		//	"fire_rate"						"--0.25" // 1.5, ttf2 kraber don't have a long sequence for firing!
		//	"rechamber_time"  				"++0.55" // 2.15, because of short firing we should set this higher to balance

		//	"reload_time"                              "3.2"
		//	"reload_time_late1"                        "1.95"
		//	"reload_time_late2"                        "1.95"
		//	"reloadempty_time"                         "4.3"
		//	"reloadempty_time_late1"                   "3.13"
		//	"reloadempty_time_late2"                   "2.08"
		//	"reloadempty_time_late3"                   "0.65"
		//}

		//nessie_balance
		//{
		//	"fire_rate"				"1.2"
		//	"rechamber_time"  		"1.85"

			// unused settings
			//"projectile_gravity_scale"						"1.0"
			//"zoom_time_in"			"0.58"
			//"zoom_time_out"			"0.55"
			//"damage_near_value"		"140"
			//"damage_far_value"		"140"
			// almost reached line limit of 200( with 6 mods removed above )
		//}

		// gruntmode specific
		gm_heavysniper // high titan damage kraber, bypass titan armor
		{
			"damage_near_value_titanarmor"					"++375" // 805 was ++400(830)
			"damage_far_value_titanarmor" 					"++375" // 805 was ++400(830)

			"titanarmor_critical_hit_required"          	"0"

			"damage_heavyarmor_nontitan_scale"				"++0.65" // 1.0, no damage penalty against reapers( does this actually work? )
		}

		// npc usage
		//npc_sniper_grunt // moved into pve_elite
		//{
		//	"npc_damage_near_value"   						"++40" // 89
        //  "npc_damage_far_value"							"++40" // 89

		//	"titanarmor_critical_hit_required"          	"0"
		//	"damage_near_value_titanarmor"					"++610" // 660
		//	"damage_far_value_titanarmor" 					"++610" // 660

		//	"npc_accuracy_multiplier_pilot"					"++2.0" // 3.0
		//}

		// reached 30 mods( with 8 mods removed above, 30 is max )
	}

	//Oracle/stabilizer blue dot
	"ui5_enable"		"0"
	"ui5_draw_cloaked"	"1"
	UiData5
	{
		"ui"								"ui/volt_sights"
		"mesh"							"models/weapons/attachments/oracle_rui_upper"
		Args
		{
			vis							player_zoomfrac
		}
	}

	RUI_CrosshairData
	{
		DefaultArgs
		{
			adjustedSpread				weapon_spread
			adsFrac 					player_zoomFrac
			isSprinting					player_is_sprinting
			isReloading					weapon_is_reloading
			teamColor					crosshair_team_color
			isAmped						weapon_is_amped
			crosshairMovementX			crosshair_movement_x
			crosshairMovementY			crosshair_movement_y
		}

		Crosshair_1
		{
			"ui"						"ui/crosshair_sniper_amped"
			"base_spread"				"10"
			Args
			{
				isFiring				weapon_is_firing
			}
		}

		Crosshair_2
		{
			"ui"						"ui/crosshair_smart_pistol"
			"base_spread"				"0.0"
			Args
			{
				isLocked				smartammo_locked
				smartFov				"eWeaponVar.smart_ammo_search_angle"
				isFiring				weapon_is_firing
			}
		}
	}
}
