From 6dfe2856e8c4b9c533f0c380abbfd4b6fada3518 Mon Sep 17 00:00:00 2001 From: Tristan Kennedy Date: Sun, 27 Mar 2022 13:22:11 +1100 Subject: Restored Triple Threat Titan gun --- .../vscripts/sh_northstar_custom_precache.gnut | 5 +- .../mp_projectile_titanweapon_triple_threat.nut | 85 ++++ .../scripts/vscripts/weapons/sh_triple_threat.gnut | 249 +++++++++++ .../weapons/mp_titanweapon_triplethreat.txt | 495 +++++++++++++++++++++ 4 files changed, 832 insertions(+), 2 deletions(-) create mode 100644 Northstar.Custom/mod/scripts/vscripts/weapons/mp_projectile_titanweapon_triple_threat.nut create mode 100644 Northstar.Custom/mod/scripts/vscripts/weapons/sh_triple_threat.gnut create mode 100644 Northstar.Custom/mod/scripts/weapons/mp_titanweapon_triplethreat.txt (limited to 'Northstar.Custom/mod/scripts') diff --git a/Northstar.Custom/mod/scripts/vscripts/sh_northstar_custom_precache.gnut b/Northstar.Custom/mod/scripts/vscripts/sh_northstar_custom_precache.gnut index d5af4cde8..848a4b865 100644 --- a/Northstar.Custom/mod/scripts/vscripts/sh_northstar_custom_precache.gnut +++ b/Northstar.Custom/mod/scripts/vscripts/sh_northstar_custom_precache.gnut @@ -4,9 +4,10 @@ global function NorthstarCustomPrecache void function NorthstarCustomPrecache() { PrecacheWeapon( "mp_weapon_peacekraber" ) + PrecacheWeapon( "mp_titanweapon_triplethreat" ) PrecacheWeapon( "melee_pilot_kunai" ) - + // create kunai damage source so game won't crash when we hit smth with it // just using the default melee one, easier than making a new one getconsttable()[ "eDamageSourceId" ][ "melee_pilot_kunai" ] <- eDamageSourceId.melee_pilot_emptyhanded -} \ No newline at end of file +} diff --git a/Northstar.Custom/mod/scripts/vscripts/weapons/mp_projectile_titanweapon_triple_threat.nut b/Northstar.Custom/mod/scripts/vscripts/weapons/mp_projectile_titanweapon_triple_threat.nut new file mode 100644 index 000000000..afdb6961e --- /dev/null +++ b/Northstar.Custom/mod/scripts/vscripts/weapons/mp_projectile_titanweapon_triple_threat.nut @@ -0,0 +1,85 @@ +untyped + + +global function OnProjectileCollision_titanweapon_triple_threat + + +void function OnProjectileCollision_titanweapon_triple_threat( entity projectile, vector pos, vector normal, entity hitEnt, int hitbox, bool isCritical ) +{ + if( !IsValid( hitEnt ) ) + return + + if( "impactFuse" in projectile.s && projectile.s.impactFuse == true ) + projectile.GrenadeExplode( Vector( 0,0,0 ) ) + + if( hitEnt.GetClassName() == "player" && !hitEnt.IsTitan() ) + return + + if( !IsValid( projectile ) ) + return + + if( IsMagneticTarget( hitEnt ) ) + { + if( hitEnt.GetTeam() != projectile.GetTeam() ) + { + local normal = Vector( 0, 0, 1 ) + if( "collisionNormal" in projectile.s ) + normal = projectile.s.collisionNormal + projectile.GrenadeExplode( normal ) + } + } + else if( "becomeProxMine" in projectile.s && projectile.s.becomeProxMine == true ) + { + table collisionParams = + { + pos = pos, + normal = normal, + hitEnt = hitEnt, + hitbox = hitbox + } + + PlantStickyEntity( projectile, collisionParams ) + projectile.s.collisionNormal <- normal + #if SERVER + thread TripleThreatProximityTrigger( projectile ) + #endif + } + +} + +#if SERVER +function TripleThreatProximityTrigger( entity nade ) +{ + //Hack, shouldn't be necessary with the IsValid check in OnProjectileCollision. + if( !IsValid( nade ) ) + return + + nade.EndSignal( "OnDestroy" ) + EmitSoundOnEntity( nade, "Wpn_TripleThreat_Grenade_MineAttach" ) + + wait TRIPLETHREAT_MINE_FIELD_ACTIVATION_TIME + + EmitSoundOnEntity( nade, "Weapon_Vortex_Gun.ExplosiveWarningBeep" ) + local rangeCheck = PROX_MINE_RANGE + while( 1 ) + { + local origin = nade.GetOrigin() + int team = nade.GetTeam() + + local entityArray = GetScriptManagedEntArrayWithinCenter( level._proximityTargetArrayID, team, origin, PROX_MINE_RANGE ) + foreach( entity ent in entityArray ) + { + if ( TRIPLETHREAT_MINE_FIELD_TITAN_ONLY ) + if ( !ent.IsTitan() ) + continue + + if ( IsAlive( ent ) ) + { + nade.Signal( "ProxMineTrigger" ) + return + } + } + WaitFrame() + } +} +#endif // SERVER diff --git a/Northstar.Custom/mod/scripts/vscripts/weapons/sh_triple_threat.gnut b/Northstar.Custom/mod/scripts/vscripts/weapons/sh_triple_threat.gnut new file mode 100644 index 000000000..eeea91d63 --- /dev/null +++ b/Northstar.Custom/mod/scripts/vscripts/weapons/sh_triple_threat.gnut @@ -0,0 +1,249 @@ +untyped + + +global function MpTitanweaponTripleThreat_Init +global function OnWeaponPrimaryAttack_titanweapon_triplethreat + +#if SERVER +global function OnWeaponNpcPrimaryAttack_titanweapon_triplethreat +#endif + +const FX_MINE_TRAIL = $"Rocket_Smoke_Large" +const FX_MINE_LIGHT = $"tower_light_red" +const FX_TRIPLE_IGNITION = $"wpn_grenade_TT_activate" +const FX_TRIPLE_IGNITION_BURN = $"wpn_grenade_TT_activate" +const BURN_MAGNETIC_FORCE = 2400 +const MIN_FUSE_TIME = 2.3 +const MAX_FUSE_TIME = 2.7 +const MIN_ROLLING_ROUNDS_FUSE_TIME = 3.2 +const MAX_ROLLING_ROUNDS_FUSE_TIME = 3.7 + +global const TRIPLETHREAT_LAUNCH_VELOCITY = 1100.0 +global const TRIPLETHREAT_MIN_MINE_FUSE_TIME = 8.2 +global const TRIPLETHREAT_MAX_MINE_FUSE_TIME = 8.8 +global const TRIPLETHREAT_MINE_FIELD_ACTIVATION_TIME = 1.15 //After landing +global const TRIPLETHREAT_MINE_FIELD_TITAN_ONLY = false +global const TRIPLETHREAT_MINE_FIELD_MAX_MINES = 9 +global const TRIPLETHREAT_MINE_FIELD_LAUNCH_VELOCITY = 1100 +global const TRIPLETHREAT_NUM_SHOTS = 3 +global const PROX_MINE_RANGE = 200 + +const TRIPLETHREAT_MAX_BOLTS = 3 + +struct +{ + float[2][TRIPLETHREAT_MAX_BOLTS] boltOffsets = [ + [0.2, 0.0], + [0.2, 2.0], // right + [0.2, -2.0], // left + ] +} file + + +function MpTitanweaponTripleThreat_Init() +{ + RegisterSignal( "ProxMineTrigger" ) + + PrecacheParticleSystem( FX_MINE_TRAIL ) + PrecacheParticleSystem( FX_MINE_LIGHT ) + PrecacheParticleSystem( FX_TRIPLE_IGNITION ) + PrecacheParticleSystem( FX_TRIPLE_IGNITION_BURN ) +} + +var function OnWeaponPrimaryAttack_titanweapon_triplethreat( entity weapon, WeaponPrimaryAttackParams attackParams ) +{ + entity owner = weapon.GetWeaponOwner() + float zoomFrac = owner.GetZoomFrac() + if ( zoomFrac < 1 && zoomFrac > 0) + return 0 + weapon.EmitWeaponNpcSound( LOUD_WEAPON_AI_SOUND_RADIUS_MP, 0.2 ) + return FireTripleThreat (weapon, attackParams, true) +} + +#if SERVER +var function OnWeaponNpcPrimaryAttack_titanweapon_triplethreat( entity weapon, WeaponPrimaryAttackParams attackParams ) +{ + weapon.EmitWeaponNpcSound( LOUD_WEAPON_AI_SOUND_RADIUS_MP, 0.2 ) + return FireTripleThreat (weapon, attackParams, false) +} +#endif + +function FireTripleThreat( entity weapon, WeaponPrimaryAttackParams attackParams, bool playerFired ) +{ + entity weaponOwner = weapon.GetWeaponOwner() + + bool shouldCreateProjectile = false + if ( IsServer() || weapon.ShouldPredictProjectiles() ) + shouldCreateProjectile = true + #if CLIENT + if ( !playerFired ) + shouldCreateProjectile = false + #endif + + entity bossPlayer = weaponOwner + bool hasRollingRoundsMod = weapon.HasMod( "rolling_rounds" ) + + if ( weaponOwner.IsNPC() ) + bossPlayer = weaponOwner.GetTitanSoul().GetBossPlayer() + + bool inADS = weapon.IsWeaponInAds() + vector attackAngles = VectorToAngles( attackParams.dir ) + vector baseUpVec = AnglesToUp( attackAngles ) + vector baseRightVec = AnglesToRight( attackAngles ) + + if ( shouldCreateProjectile ) + { + int numShots = weapon.GetProjectilesPerShot() + float velocity = TRIPLETHREAT_LAUNCH_VELOCITY * 1.2 + float angleAdjustment = 1 + if ( weapon.HasMod( "spread_increase_ttt" ) ) + angleAdjustment = 1.5 + else if ( weapon.HasMod( "spread_decrease_ttt" ) ) + angleAdjustment = 0.5 + + for ( int i = 0; i < numShots; i++ ) + { + vector upVec = baseUpVec * file.boltOffsets[i][0] * 0.05 + vector rightVec = baseRightVec * file.boltOffsets[i][1] * angleAdjustment * 0.05 + + if ( inADS ) + { + // Instead of swapping for horizontal spread, add it to preserve the y-axis velocity the shots normally have + upVec = baseUpVec * (file.boltOffsets[i][0] + file.boltOffsets[i][1] * angleAdjustment) * 0.05 + rightVec = Vector(0, 0, 0) + } + + vector attackVec = attackParams.dir + rightVec + upVec + + if (weapon.HasMod("hydraulic_launcher")) + attackVec *= (1.0 + weapon.GetWeaponChargeFraction()) + + float fuseTime + if( hasRollingRoundsMod ) + fuseTime = RandomFloatRange( MIN_ROLLING_ROUNDS_FUSE_TIME, MAX_ROLLING_ROUNDS_FUSE_TIME ) + else + fuseTime = RandomFloatRange( MIN_FUSE_TIME, MAX_FUSE_TIME ) + + int damageType = damageTypes.explosive + if ( weapon.HasMod( "arc_triple_threat" ) ) + damageType = damageType | damageTypes.electric + + vector angularVelocity = Vector( RandomFloatRange( -velocity, velocity ), 100, 0 ) + + FireTripleThreatGrenade( weapon, attackParams.pos, attackVec, angularVelocity, playerFired, fuseTime, damageType ) + } + } + + return 3 +} + +function FireTripleThreatGrenade( entity weapon, origin, fwd, velocity, playerFired, float fuseTime, damageType = null ) +{ + entity weaponOwner = weapon.GetWeaponOwner() + + if ( damageType == null ) + damageType = damageTypes.explosive + + entity nade = weapon.FireWeaponGrenade( origin, fwd, velocity, 0, damageType, damageType, playerFired, true, true ) + if ( nade ) + { + nade.InitMagnetic( 1000.0, "Explo_MGL_MagneticAttract" ) + + nade.kv.CollideWithOwner = false + + Grenade_Init( nade, weapon ) + #if SERVER + nade.SetOwner( weaponOwner ) + thread EnableCollision( nade ) + thread AirPop( nade, fuseTime ) + thread TrapExplodeOnDamage( nade, 50, 0.0, 0.1 ) + + if( weapon.HasMod( "mine_field" ) ) + nade.s.becomeProxMine <- true + + if( weapon.HasMod( "rolling_rounds" ) ) + nade.s.rollingRound <- true + + if( weapon.HasMod( "impact_fuse" ) ) + nade.s.impactFuse <- true + + if( weapon.HasMod( "burn_mod_titan_triple_threat" ) ) + { + nade.s.hasBurnMod <- true + nade.InitMagnetic( BURN_MAGNETIC_FORCE, "Explo_TripleThreat_MagneticAttract" ) + //EmitSoundOnEntity( nade, "Weapon_R1_MGL_Grenade_Emitter" ) + } + #else + SetTeam( nade, weaponOwner.GetTeam() ) + #endif + + return nade + } +} + +function EnableCollision( entity grenade ) +{ + grenade.EndSignal("OnDestroy") + + wait 1.0 + grenade.kv.CollideWithOwner = true +} + +function AirPop( entity grenade, float fuseTime ) +{ + grenade.EndSignal( "OnDestroy" ) + + float popDelay = RandomFloatRange( 0.2, 0.3 ) + + string waitSignal = "Planted" // Signal triggered when mine sticks to something + local waitResult = WaitSignalTimeout( grenade, (fuseTime - (popDelay + 0.2)), waitSignal ) + + // Only enter here if the mine stuck to something + if ( waitResult != null && waitResult.signal == waitSignal ) + { + fuseTime = RandomFloatRange( TRIPLETHREAT_MIN_MINE_FUSE_TIME, TRIPLETHREAT_MAX_MINE_FUSE_TIME ) + waitSignal = "ProxMineTrigger" + waitResult = WaitSignalTimeout( grenade, (fuseTime - (popDelay + 0.2)), waitSignal ) + + // Mine was triggered via proximity + if ( waitResult != null && waitResult.signal == waitSignal ) + EmitSoundOnEntity( grenade, "NPE_Missile_Alarm") // TEMP - Replace with a real sound + } + + asset effect = FX_TRIPLE_IGNITION + if( "hasBurnMod" in grenade.s && grenade.s.hasBurnMod ) + effect = FX_TRIPLE_IGNITION_BURN + + int fxId = GetParticleSystemIndex( effect ) + StartParticleEffectOnEntity( grenade, fxId, FX_PATTACH_ABSORIGIN_FOLLOW, -1 ) + + EmitSoundOnEntity( grenade, "Triple_Threat_Grenade_Charge" ) + + float popSpeed = RandomFloatRange( 40.0, 64.0 ) + vector popVelocity = Vector ( 0, 0, popSpeed ) + vector normal = Vector( 0, 0, 1 ) + if( "becomeProxMine" in grenade.s && grenade.s.becomeProxMine == true ) + { + //grenade.ClearParent() + if( "collisionNormal" in grenade.s ) + { + normal = expect vector( grenade.s.collisionNormal ) + popVelocity = expect vector( grenade.s.collisionNormal ) * popSpeed + } + } + + vector newPosition = grenade.GetOrigin() + popVelocity + grenade.SetVelocity( GetVelocityForDestOverTime( grenade.GetOrigin(), newPosition, popDelay ) ) + + wait popDelay + TripleThreat_Explode( grenade ) +} + +function TripleThreat_Explode( entity grenade ) +{ + vector normal = Vector( 0, 0, 1 ) + if( "collisionNormal" in grenade.s ) + normal = expect vector( grenade.s.collisionNormal ) + + grenade.GrenadeExplode( normal ) +} diff --git a/Northstar.Custom/mod/scripts/weapons/mp_titanweapon_triplethreat.txt b/Northstar.Custom/mod/scripts/weapons/mp_titanweapon_triplethreat.txt new file mode 100644 index 000000000..a1337d9f1 --- /dev/null +++ b/Northstar.Custom/mod/scripts/weapons/mp_titanweapon_triplethreat.txt @@ -0,0 +1,495 @@ +WeaponData +{ + // General + "printname" "#WPN_TITAN_TRIPLE_THREAT" + "shortprintname" "#WPN_TITAN_TRIPLE_THREAT_SHORT" + "description" "#WPN_TITAN_TRIPLE_THREAT_DESC" + "longdesc" "#WPN_TITAN_TRIPLE_THREAT_LONGDESC" + + "leveled_pickup" "1" + "ammo_no_remove_from_stockpile" "1" + + "menu_icon" "r2_ui/menus/loadout_icons/titan_weapon/titan_weapon_leadwall" + "hud_icon" "r2_ui/menus/loadout_icons/titan_weapon/titan_weapon_leadwall" + + "weaponClass" "titan" + "weaponSubClass" "projectile_shotgun" + "body_type" "close_quarters" + "fire_mode" "semi-auto" + "pickup_hold_prompt" "Hold [USE] [WEAPONNAME]" + "pickup_press_prompt" "[USE] [WEAPONNAME]" + "minimap_reveal_distance" "32000" + + "damage_flags" "DF_GIB" + + "OnWeaponPrimaryAttack" "OnWeaponPrimaryAttack_titanweapon_triplethreat" + "OnWeaponNpcPrimaryAttack" "OnWeaponNpcPrimaryAttack_titanweapon_triplethreat" + "OnProjectileCollision" "OnProjectileCollision_titanweapon_triple_threat" + + // Menu Stats + "stat_damage" "98" + "stat_range" "15" + "stat_accuracy" "15" + "stat_rof" "20" + + // Models + "viewmodel" "models/weapons/titan_triple_threat_og/atpov_titan_triple_threat_og.mdl" + "playermodel" "models/weapons/titan_triple_threat_og/w_titan_triple_threat_og.mdl" + "holstermodel" "models/weapons/titan_triple_threat_og/w_titan_triple_threat_og.mdl" + + MP_BASE + { + "damage_near_distance" "1500" + "damage_far_distance" "3000" + "damage_near_value" "0" + "damage_far_value" "0" + "damage_near_value_titanarmor" "0" + "damage_far_value_titanarmor" "0" + + "deploy_time" "0.8" + + "ammo_min_to_fire" "3" + + "enable_highlight_networking_on_creation" "" + "projectile_ricochet_max_count" "0" + } + + SP_BASE + { + "damage_near_distance" "1500" + "damage_far_distance" "3000" + "damage_near_value" "0" + "damage_far_value" "0" + "damage_near_value_titanarmor" "0" + "damage_far_value_titanarmor" "0" + + "deploy_time" "1.75" + + "ammo_min_to_fire" "3" + + "enable_highlight_networking_on_creation" "1" + } + + // Effects + "tracer_effect" "weapon_tracers_titandestroyer" + "impact_effect_table" "triplethreat_frag" + "projectile_adjust_to_gun_barrel" "1" + "projectile_airburst_on_death" "1" + + "vortex_absorb_effect" "wpn_vortex_projectile_trip_FP" + "vortex_absorb_effect_third_person" "wpn_vortex_projectile_trip" + "vortex_absorb_sound" "Vortex_Shield_AbsorbRocket" + "vortex_absorb_sound_1p_vs_3p" "Vortex_Shield_AbsorbRocket_1P_VS_3P" + + "projectilemodel" "models/weapons/bullets/triple_threat_projectile.mdl" + "projectile_trail_effect_0" "wpn_grenade_TT" +// "projectile_trail_effect_0" "P_leadwall_proj" + + "sound_dryfire" "titan_dryfire" + "fire_sound_1_player_1p" "weapon_triplethreat_fire_1p" + "fire_sound_1_player_3p" "weapon_triplethreat_fire_3p" + "fire_sound_1_npc" "weapon_triplethreat_fire_3p" + "sound_zoom_in" "Weapon_Triple_Threat.ALT_On" + "sound_zoom_out" "Weapon_Triple_Threat.ALT_Off" + + "low_ammo_sound_name_1" "mgl_lowammo_shot1" + "low_ammo_sound_name_2" "mgl_lowammo_shot2" + + "fx_muzzle_flash_view" "wpn_muzzleflash_xo_triple_fp" + "fx_muzzle_flash_world" "wpn_muzzleflash_xo_triple" + "fx_muzzle_flash_attach" "muzzle_flash" + + // Damage - When Used by Players + "damage_type" "burn" + + "crosshair" "crosshair_t" + "explosion_damage" "350" // 150 + "explosion_damage_heavy_armor" "550" // 150 + + "explosion_inner_radius" "140" + "explosionradius" "320" + "impulse_force" "5000" + + "critical_hit_damage_scale" "1.5" + + "critical_hit" "0" + + "projectile_inherit_owner_velocity_scale" "0.2" + + "projectiles_per_shot" "3" + + // Ammo + "ammo_stockpile_max" "200" + "ammo_per_shot" "3" + "ammo_clip_size" "9" + "ammo_default_total" "200" + "ammo_display" "segmented" + + // Regen Ammo + // "regen_ammo_refill_rate" "1.5" + // "regen_ammo_refill_start_delay" "1.0" + + "bolt_hitsize" "0.5" + "bolt_hitsize_grow1_time" "0.075" + "bolt_hitsize_grow1_size" "4.0" + "bolt_hitsize_grow2_time" "0.075" + "bolt_hitsize_grow2_size" "4.0" + "bolt_hitsize_growfinal_lerptime" "0.18" + "bolt_hitsize_growfinal_size" "6.0" + "bolt_bounce_frac" "1.0" + + "projectile_launch_speed" "1100" + "projectile_launch_pitch_offset" "1" + "projectile_adjust_to_gun_barrel" "1" + + "grenade_bounce_vel_frac_shallow" "0.4" + "grenade_bounce_vel_frac_sharp" "0.25" + "grenade_bounce_vel_frac_along_normal" "0.5" + "grenade_bounce_randomness" "0.2" + "grenade_bounce_extra_vertical_randomness" "0.2" + "grenade_roll_vel_frac_per_second" "0.1" + + // Behavior + "fire_rate" "1.2" + "zoom_time_in" "0.2" + "zoom_time_out" "0.2" + "zoom_fov" "55" + "zoom_effects" "1" + "reload_time" "3.0" + "reload_time_late1" "2" + "reload_time_late2" "1" + "reloadempty_time" "3.0" + "reloadempty_time_late1" "2" + "reloadempty_time_late2" "1" + "holster_time" "0.45" + "deploy_time" "0.85" + "lower_time" "0.1" + "raise_time" "0.4" + "vortex_refire_behavior" "grenade" + "allow_empty_fire" "0" + "reload_enabled" "1" + "allow_empty_click" "1" + "empty_reload_only" "0" + "trigger_snipercam" "1" + "allow_headshots" "0" + "primary_fire_does_not_block_sprint" "0" + "ads_move_speed_scale" "0.75" + "aimassist_disable_hipfire_humansonly" "1" + "aimassist_disable_ads_humansonly" "1" + + // Spread + "spread_stand_hip" "0.0" + "spread_stand_hip_run" "0.0" + "spread_stand_hip_sprint" "0.0" + "spread_stand_ads" "0.0" + "spread_crouch_hip" "0.0" + "spread_crouch_ads" "0.0" + "spread_air_hip" "0.0" + "spread_air_ads" "0.0" + + // Spread on NPCs affects their initial shooting direction + // Don't make this a large number or the damage/tracers won't be even remotely parallel to their barrel + + "ammo_suck_behavior" "primary_weapons" + + // View Kick + "viewkick_spring" "titan_launcher" + + "viewkick_pitch_base" "-3.0" + "viewkick_pitch_random" "1.0" + "viewkick_pitch_softScale" "1.0" + "viewkick_pitch_hardScale" "3.0" + + "viewkick_yaw_base" "-0.25" + "viewkick_yaw_random" "0.5" + "viewkick_yaw_softScale" "0.3" + "viewkick_yaw_hardScale" "2.0" + + "viewkick_roll_base" "0.0" + "viewkick_roll_randomMin" "0.6" + "viewkick_roll_randomMax" "0.8" + "viewkick_roll_softScale" "0.2" + "viewkick_roll_hardScale" "2.0" + + "viewkick_hipfire_weaponFraction" "0.3" + "viewkick_hipfire_weaponFraction_vmScale" "0.5" + "viewkick_ads_weaponFraction" "0.2" + "viewkick_ads_weaponFraction_vmScale" "0.5" + + "viewpunch_multiplier" "1.8" + + //"viewkick_spring" "titan_leadwall" +// + //"viewkick_pitch_base" "-2.25" + //"viewkick_pitch_random" "1" + //"viewkick_pitch_softScale" "6.0" + //"viewkick_pitch_hardScale" "1.0" +// + //"viewkick_yaw_base" "-0.95" + //"viewkick_yaw_random" "0.5" + //"viewkick_yaw_softScale" "0.5" + //"viewkick_yaw_hardScale" "2.0" +// + //"viewkick_roll_base" "0" + //"viewkick_roll_randomMin" "0.6" + //"viewkick_roll_randomMax" "0.8" + //"viewkick_roll_softScale" "0.2" + //"viewkick_roll_hardScale" "2.75" +// + //"viewkick_hipfire_weaponFraction" "0.1" + //"viewkick_hipfire_weaponFraction_vmScale" "10.0" + //"viewkick_ads_weaponFraction" "0.1" + //"viewkick_ads_weaponFraction_vmScale" "10.0" + + "viewkick_perm_pitch_base" "0" + "viewkick_perm_pitch_random" "0.0" + + // + "viewmodel_shake_forward" "0.5" + "viewmodel_shake_up" "0.2" + "viewmodel_shake_right" "0.0" + + // Bob + "bob_cycle_time" "0.69" + "bob_vert_dist" "0.6" + "bob_horz_dist" "0.1" + "bob_max_speed" "150" + "bob_pitch" "0.75" + "bob_yaw" "-1.7" + "bob_roll" "-1.2" + + // Bob + "bob_cycle_time_zoomed" "0.69" + "bob_vert_dist_zoomed" "0.6" + "bob_horz_dist_zoomed" "0.1" + "bob_max_speed_zoomed" "150" + "bob_pitch_zoomed" "0.75" + "bob_yaw_zoomed" "-1.7" + "bob_roll_zoomed" "-1.2" + + // Rumble + "fire_rumble" "titan_triple_threat" + + // Sway + "sway_rotate_attach" "SWAY_ROTATE" + "sway_min_x" "-0.5" + "sway_min_y" "-2" + "sway_min_z" "-2.7" + "sway_max_x" "0.5" + "sway_max_y" "2" + "sway_max_z" "2.7" + "sway_min_pitch" "-3" + "sway_min_yaw" "-2.5" + "sway_min_roll" "-4" + "sway_max_pitch" "3" + "sway_max_yaw" "2.5" + "sway_max_roll" "4" + "sway_translate_gain" "4" + "sway_rotate_gain" "7" + "sway_move_forward_translate_x" "-0.1" + "sway_move_forward_translate_z" "-2.7" + "sway_move_back_translate_x" "0.2" + "sway_move_back_translate_z" "-0.2" + "sway_move_left_translate_y" "-1" + "sway_move_left_translate_z" "-0.5" + "sway_move_left_rotate_roll" "-2" + "sway_move_right_translate_y" "1" + "sway_move_right_translate_z" "-0.5" + "sway_move_right_rotate_roll" "2" + "sway_move_up_translate_z" "-1" + "sway_move_down_translate_z" "1" + "sway_turn_left_rotate_yaw" "1" + "sway_turn_right_rotate_yaw" "-1" + + "sway_turn_left_translate_y" "-.5" + "sway_turn_right_translate_y" ".5" + "sway_turn_up_translate_z" "-1" + "sway_turn_down_translate_z" "1" + "sway_turn_up_translate_x" "-.1" + "sway_turn_down_translate_x" ".1" + + "sway_turn_left_rotate_roll" "-4" + "sway_turn_right_rotate_roll" "4" + "sway_turn_up_rotate_pitch" "-3" + "sway_turn_down_rotate_pitch" "3" + "sway_turn_up_rotate_roll" "0.8" + "sway_turn_down_rotate_roll" "-0.8" + + // Sway + "sway_rotate_attach_zoomed" "SWAY_ROTATE" + "sway_min_x_zoomed" "-0.5" + "sway_min_y_zoomed" "-2" + "sway_min_z_zoomed" "-2.7" + "sway_max_x_zoomed" "0.5" + "sway_max_y_zoomed" "2" + "sway_max_z_zoomed" "2.7" + "sway_min_pitch_zoomed" "-3" + "sway_min_yaw_zoomed" "-2.5" + "sway_min_roll_zoomed" "-4" + "sway_max_pitch_zoomed" "3" + "sway_max_yaw_zoomed" "2.5" + "sway_max_roll_zoomed" "4" + "sway_translate_gain_zoomed" "4" + "sway_rotate_gain_zoomed" "7" + "sway_move_forward_translate_x_zoomed" "-0.1" + "sway_move_forward_translate_z_zoomed" "-2.7" + "sway_move_back_translate_x_zoomed" "0.2" + "sway_move_back_translate_z_zoomed" "-0.2" + "sway_move_left_translate_y_zoomed" "-1" + "sway_move_left_translate_z_zoomed" "-0.5" + "sway_move_left_rotate_roll_zoomed" "-2" + "sway_move_right_translate_y_zoomed" "1" + "sway_move_right_translate_z_zoomed" "-0.5" + "sway_move_right_rotate_roll_zoomed" "2" + "sway_move_up_translate_z_zoomed" "-1" + "sway_move_down_translate_z_zoomed" "1" + "sway_turn_left_rotate_yaw_zoomed" "1" + "sway_turn_right_rotate_yaw_zoomed" "-1" + + "sway_turn_left_translate_y_zoomed" "-.5" + "sway_turn_right_translate_y_zoomed" ".5" + "sway_turn_up_translate_z_zoomed" "-1" + "sway_turn_down_translate_z_zoomed" "1" + "sway_turn_up_translate_x_zoomed" "-.1" + "sway_turn_down_translate_x_zoomed" ".1" + + "sway_turn_left_rotate_roll_zoomed" "-4" + "sway_turn_right_rotate_roll_zoomed" "4" + "sway_turn_up_rotate_pitch_zoomed" "-3" + "sway_turn_down_rotate_pitch_zoomed" "3" + "sway_turn_up_rotate_roll_zoomed" "0.8" + "sway_turn_down_rotate_roll_zoomed" "-0.8" + + // NPC + "proficiency_poor_spreadscale" "7.0" + "proficiency_poor_additional_rest" "1.0" + "proficiency_average_spreadscale" "5.0" + "proficiency_average_additional_rest" "0.5" + "proficiency_good_spreadscale" "3.33333" + "proficiency_good_additional_rest" "0.2" + "proficiency_very_good_spreadscale" "3.66667" + "proficiency_very_good_additional_rest" "0" + + + "npc_min_range" "0" + "npc_max_range" "1500" // roughly projectile speed * lifetime in script + barrel offset + + "npc_min_burst" "1" + "npc_max_burst" "1" + "npc_rest_time_between_bursts_min" "0.1" + "npc_rest_time_between_bursts_max" "0.4" + + "npc_fire_at_enemy_defense_time" "1.5" + + // WeaponED Unhandled Key/Values and custom script Key/Values + "bob_tilt_angle" "0.5" + "sway_turn_angle_factor" "-0.5" + "sway_turn_origin_factor" "0" + "sway_turn_angle_factor_zoomed" "0" + "sway_turn_origin_factor_zoomed" "0.05" + "sway_move_angle_factor" "0.15" + "sway_move_origin_factor" "0.15" + "sway_move_angle_factor_zoomed" "0" + "sway_move_origin_factor_zoomed" "0.03" + "sway_gain" "10.0" + "deployfirst_time" "1.0" + "deploycatch_time" "1.33" + + "projectile_damage_reduction_per_bounce" "0.0" + "projectile_damages_owner" "0" + //"projectile_speed_reduction_factor" "0.5" + + // Crosshair + "red_crosshair_range" "600" + + + + + // Bodygroups: + "clip_bodygroup" "triple_threat_magazine" + "clip_bodygroup_index_shown" "0" + "clip_bodygroup_index_hidden" "1" + "clip_bodygroup_show_for_milestone_0" "1" + "clip_bodygroup_show_for_milestone_1" "0" + "clip_bodygroup_show_for_milestone_2" "1" + + + Mods + { + mine_field + { + + } + + spread_decrease_ttt + { + + } + + spread_increase_ttt + { + + } + + hydraulic_launcher + { + "charge_time" "3.0" //Hydraulic Launcher - Charge to increase distance fired. + "charge_rumble_min" "10" + "charge_rumble_max" "40" + } + + + impact_fuse + { + + } + + rolling_rounds + { + "grenade_bounce_vel_frac_shallow" "0.6" + "grenade_bounce_vel_frac_sharp" "0.4" + "grenade_bounce_vel_frac_along_normal" "0.7" + "grenade_roll_vel_frac_per_second" "0.5" + } + + + burn_mod_titan_triple_threat + { + "projectile_trail_effect_0" "wpn_grenade_frag_mag_burn" + //"damage_near_value" "*1.5" + //"damage_far_value" "*1.5" + //"damage_near_value_titanarmor" "*1.5" + //"damage_far_value_titanarmor" "*1.5" + //"explosion_damage" "*1.5" // 150 + //"explosion_damage_heavy_armor" "*1.5" // 150 + "is_burn_mod" "1" + } + } + active_crosshair_count "1" + crosshair_index "0" + + 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_leadwall" + "base_spread" "0.0" + Args + { + isFiring weapon_is_firing + } + } + } +} -- cgit v1.2.3