aboutsummaryrefslogtreecommitdiff
path: root/Northstar.Custom
diff options
context:
space:
mode:
authorBobTheBob <32057864+BobTheBob9@users.noreply.github.com>2021-10-20 20:11:43 +0100
committerBobTheBob <32057864+BobTheBob9@users.noreply.github.com>2021-10-20 20:11:43 +0100
commite79a58640e1ef1ea1c3c954aefccd36c3cb55286 (patch)
tree8c7b822f8777ccdf6b0d86587da853b8451953c1 /Northstar.Custom
parentd37c5ae333b4e622ebd0d18cf02a87d66aac62f9 (diff)
downloadNorthstarMods-e79a58640e1ef1ea1c3c954aefccd36c3cb55286.tar.gz
NorthstarMods-e79a58640e1ef1ea1c3c954aefccd36c3cb55286.zip
automatic mod enable/disable, refactors and item registration callbacks
Diffstat (limited to 'Northstar.Custom')
-rw-r--r--Northstar.Custom/keyvalues/scripts/weapons/melee_pilot_emptyhanded.txt9
-rw-r--r--Northstar.Custom/mod.json73
-rw-r--r--Northstar.Custom/mod/scripts/vscripts/gamemodes/_gamemode_gg.gnut4
-rw-r--r--Northstar.Custom/mod/scripts/vscripts/gamemodes/_gamemode_sbox.gnut49
-rw-r--r--Northstar.Custom/mod/scripts/vscripts/gamemodes/sh_gamemode_sbox.gnut20
-rw-r--r--Northstar.Custom/mod/scripts/vscripts/gamemodes/sh_riff_instagib.gnut (renamed from Northstar.Custom/mod/scripts/vscripts/gamemodes/_riff_instagib.gnut)10
-rw-r--r--Northstar.Custom/mod/scripts/vscripts/northstar_custom_autoprecache.gnut14
-rw-r--r--Northstar.Custom/mod/scripts/vscripts/rodeo/sh_classic_rodeo.gnut13
-rw-r--r--Northstar.Custom/mod/scripts/vscripts/sh_bleedout_damage.gnut (renamed from Northstar.Custom/mod/scripts/vscripts/_bleedout_damage.gnut)0
-rw-r--r--Northstar.Custom/mod/scripts/vscripts/sh_custom_air_accel.gnut (renamed from Northstar.Custom/mod/scripts/vscripts/_custom_air_accel.gnut)0
-rw-r--r--Northstar.Custom/mod/scripts/vscripts/sh_custom_oob_timer.gnut (renamed from Northstar.Custom/mod/scripts/vscripts/_custom_oob_timer.gnut)0
-rw-r--r--Northstar.Custom/mod/scripts/vscripts/sh_northstar_custom_precache.gnut11
-rw-r--r--Northstar.Custom/mod/scripts/vscripts/sh_promode.gnut (renamed from Northstar.Custom/mod/scripts/vscripts/_promode.gnut)0
-rw-r--r--Northstar.Custom/mod/scripts/vscripts/weapons/mp_weapon_toolgun.nut39
-rw-r--r--Northstar.Custom/mod/scripts/vscripts/weapons/toolgun/sh_toolgun_tool_explode.nut30
-rw-r--r--Northstar.Custom/mod/scripts/vscripts/weapons/toolgun/sh_toolgun_tool_throw.nut24
-rw-r--r--Northstar.Custom/mod/scripts/vscripts/weapons/toolgun/sh_toolgun_tools.gnut196
-rw-r--r--Northstar.Custom/mod/scripts/weapons/melee_pilot_emptyhanded.txt149
-rw-r--r--Northstar.Custom/mod/scripts/weapons/mp_weapon_toolgun.txt587
19 files changed, 56 insertions, 1172 deletions
diff --git a/Northstar.Custom/keyvalues/scripts/weapons/melee_pilot_emptyhanded.txt b/Northstar.Custom/keyvalues/scripts/weapons/melee_pilot_emptyhanded.txt
new file mode 100644
index 00000000..fa83ce07
--- /dev/null
+++ b/Northstar.Custom/keyvalues/scripts/weapons/melee_pilot_emptyhanded.txt
@@ -0,0 +1,9 @@
+WeaponData
+{
+ // mod for testing low damage, high knockback "shove" melee rebalance
+ test_push
+ {
+ "melee_damage" "5"
+ "impulse_force" "150000"
+ }
+} \ No newline at end of file
diff --git a/Northstar.Custom/mod.json b/Northstar.Custom/mod.json
index 7b009d03..62729854 100644
--- a/Northstar.Custom/mod.json
+++ b/Northstar.Custom/mod.json
@@ -1,17 +1,18 @@
{
"Name" : "Northstar.Custom",
"LoadPriority": 1,
-
+ "RequiredOnClient": true,
+
"Scripts": [
{
- "Path": "northstar_custom_autoprecache.gnut",
+ "Path": "sh_northstar_custom_precache.gnut",
"RunOn": "( CLIENT || SERVER ) && MP",
"ClientCallback": {
- "After": "NorthstarCustomAutoprecache"
+ "After": "NorthstarCustomPrecache"
},
"ServerCallback": {
- "After": "NorthstarCustomAutoprecache"
+ "After": "NorthstarCustomPrecache"
}
},
{
@@ -27,54 +28,6 @@
"RunOn": "( CLIENT || SERVER ) && MP",
},
- {
- "Path": "gamemodes/sh_gamemode_sbox.gnut",
- "RunOn": "( CLIENT || SERVER ) && MP",
- "ClientPreCallback": {
- "Before": "Sh_GamemodeSbox_Init"
- },
-
- "ServerPreCallback": {
- "Before": "Sh_GamemodeSbox_Init"
- }
- },
- {
- "Path": "gamemodes/_gamemode_sbox.gnut",
- "RunOn": "SERVER && MP"
- },
- {
- "Path": "weapons/mp_weapon_toolgun.nut",
- "RunOn": "( CLIENT || SERVER ) && MP"
- },
- {
- "Path": "weapons/toolgun/sh_toolgun_tools.gnut",
- "RunOn": "( CLIENT || SERVER ) && MP",
- "ClientCallback": "ToolgunTools_Init",
- "ServerCallback": "ToolgunTools_Init"
- },
- {
- "Path": "weapons/toolgun/sh_toolgun_tool_throw.nut",
- "RunOn": "( CLIENT || SERVER ) && MP",
- "ClientCallback": {
- "After": "ToolgunToolThrowEntity_Init"
- },
-
- "ServerCallback": {
- "After": "ToolgunToolThrowEntity_Init"
- }
- },
- {
- "Path": "weapons/toolgun/sh_toolgun_tool_explode.nut",
- "RunOn": "( CLIENT || SERVER ) && MP",
- "ClientCallback": {
- "After": "ToolgunToolCreateExplosion_Init"
- },
-
- "ServerCallback": {
- "After": "ToolgunToolCreateExplosion_Init"
- }
- },
-
// fortwar
{
"Path": "gamemodes/sh_gamemode_fw_custom.nut",
@@ -299,15 +252,19 @@
// riffs, playlist vars etc
{
- "Path": "gamemodes/_riff_instagib.gnut",
- "RunOn": "SERVER && MP",
+ "Path": "gamemodes/sh_riff_instagib.gnut",
+ "RunOn": "( CLIENT || SERVER ) && MP",
+ "ClientCallback": {
+ "After": "RiffInstagib_Init"
+ },
+
"ServerCallback": {
"After": "RiffInstagib_Init"
}
},
{
- "Path": "_custom_air_accel.gnut",
+ "Path": "sh_custom_air_accel.gnut",
"RunOn": "CLIENT || SERVER",
"ClientCallback": {
"After": "CustomAirAccelVars_Init"
@@ -319,7 +276,7 @@
},
{
- "Path": "_promode.gnut",
+ "Path": "sh_promode.gnut",
"RunOn": "MP",
"ClientCallback": {
"After": "Promode_Init"
@@ -331,7 +288,7 @@
},
{
- "Path": "_bleedout_damage.gnut",
+ "Path": "sh_bleedout_damage.gnut",
"RunOn": "( CLIENT || SERVER ) && MP",
"ClientCallback": {
"Before": "BleedoutDamage_PreInit",
@@ -345,7 +302,7 @@
},
{
- "Path": "_custom_oob_timer.gnut",
+ "Path": "sh_custom_oob_timer.gnut",
"RunOn": "( CLIENT || SERVER ) && MP",
"ClientCallback": {
"After": "CustomOOBTimer_Init"
diff --git a/Northstar.Custom/mod/scripts/vscripts/gamemodes/_gamemode_gg.gnut b/Northstar.Custom/mod/scripts/vscripts/gamemodes/_gamemode_gg.gnut
index e0178034..8c68f554 100644
--- a/Northstar.Custom/mod/scripts/vscripts/gamemodes/_gamemode_gg.gnut
+++ b/Northstar.Custom/mod/scripts/vscripts/gamemodes/_gamemode_gg.gnut
@@ -15,6 +15,10 @@ void function GamemodeGG_Init()
AddCallback_OnPlayerKilled( OnPlayerKilled )
AddCallback_GameStateEnter( eGameState.WinnerDetermined, OnWinnerDetermined )
+
+ // set scorelimit if it's wrongm sort of a jank way to do it but best i've got rn
+ if ( GetCurrentPlaylistVarInt( "scorelimit", GetGunGameWeapons().len() ) != GetGunGameWeapons().len() )
+ SetPlaylistVarOverride( "scorelimit", GetGunGameWeapons().len().tostring() )
}
void function OnPlayerRespawned( entity player )
diff --git a/Northstar.Custom/mod/scripts/vscripts/gamemodes/_gamemode_sbox.gnut b/Northstar.Custom/mod/scripts/vscripts/gamemodes/_gamemode_sbox.gnut
deleted file mode 100644
index 27581aea..00000000
--- a/Northstar.Custom/mod/scripts/vscripts/gamemodes/_gamemode_sbox.gnut
+++ /dev/null
@@ -1,49 +0,0 @@
-untyped
-global function GamemodeSbox_Init
-
-struct {
- array<entity> spawnpoints
-} file
-
-void function GamemodeSbox_Init()
-{
- SetConVarInt( "sv_cheats", 1 ) // cheats on by default
-
- // cache spawnpoints
- //file.spawnpoints = GetEntArrayByClass_Expensive( "info_spawnpoint_human" )
- // todo just use a spawn callback for this rather than weird late cache in spawn
-
- AddCallback_OnClientConnected( SboxSpawnPlayer )
- AddDeathCallback( "player", SboxRespawnPlayer )
-}
-
-void function SboxSpawnPlayer( entity player )
-{
- if ( player.GetPlayerSettings() == "spectator" ) // if they haven't spawned yet
- player.SetPlayerSettings( "pilot_grapple_male" )
-
- if ( file.spawnpoints.len() == 0 ) // have to cache late rather than on init due to spawnpoints not existing in init
- file.spawnpoints = GetEntArrayByClass_Expensive( "info_spawnpoint_human" )
-
- if ( GetGameState() != eGameState.Playing ) // hacky but can't set this in init either
- SetGameState( eGameState.Playing )
-
- entity spawnpoint = file.spawnpoints[ RandomInt( file.spawnpoints.len() ) ]
-
- ScreenFadeFromBlack( player, 0.0, 0.0 ) // HACK before non-classicmp intros are ready, remove the blackscreen we get from waitingforplayers
- player.RespawnPlayer( spawnpoint )
- player.GiveWeapon( "mp_weapon_toolgun" )
-}
-
-void function SboxRespawnPlayer( entity player, var damageInfo )
-{
- thread SboxRespawnPlayerThreaded( player )
-}
-
-void function SboxRespawnPlayerThreaded( entity player )
-{
- // todo: replace this with real respawn logic when that's ready
-
- wait 2.5
- SboxSpawnPlayer( player )
-} \ No newline at end of file
diff --git a/Northstar.Custom/mod/scripts/vscripts/gamemodes/sh_gamemode_sbox.gnut b/Northstar.Custom/mod/scripts/vscripts/gamemodes/sh_gamemode_sbox.gnut
deleted file mode 100644
index 893d9410..00000000
--- a/Northstar.Custom/mod/scripts/vscripts/gamemodes/sh_gamemode_sbox.gnut
+++ /dev/null
@@ -1,20 +0,0 @@
-global function Sh_GamemodeSbox_Init
-
-global const string GAMEMODE_SBOX = "sbox"
-
-void function Sh_GamemodeSbox_Init()
-{
- // create custom gametype
- AddCallback_OnCustomGamemodesInit( CreateGamemodeSbox )
-}
-
-void function CreateGamemodeSbox()
-{
- GameMode_Create( GAMEMODE_SBOX )
- GameMode_SetName( GAMEMODE_SBOX, "#PL_sbox" )
- GameMode_SetDesc( GAMEMODE_SBOX, "#PL_sbox_desc" )
-
- #if SERVER
- GameMode_AddServerInit( GAMEMODE_SBOX, GamemodeSbox_Init )
- #endif
-} \ No newline at end of file
diff --git a/Northstar.Custom/mod/scripts/vscripts/gamemodes/_riff_instagib.gnut b/Northstar.Custom/mod/scripts/vscripts/gamemodes/sh_riff_instagib.gnut
index b3868359..316893bb 100644
--- a/Northstar.Custom/mod/scripts/vscripts/gamemodes/_riff_instagib.gnut
+++ b/Northstar.Custom/mod/scripts/vscripts/gamemodes/sh_riff_instagib.gnut
@@ -1,12 +1,17 @@
global function RiffInstagib_Init
+#if SERVER
struct {
table<entity, int> playerWeapons
array<string> instagibWeapons
} file
+#endif
void function RiffInstagib_Init()
{
+ AddPrivateMatchModeSettingEnum( "#MODE_SETTING_CATEGORY_RIFF", "riff_instagib", [ "Disabled", "Enabled" ], "0" )
+
+ #if SERVER
if ( GetCurrentPlaylistVarInt( "riff_instagib", 0 ) == 0 )
return
@@ -26,8 +31,10 @@ void function RiffInstagib_Init()
AddCallback_OnPlayerRespawned( InstagibSetWeapons )
AddCallback_OnPlayerKilled( InstagibCycleWeaponsForKill )
AddCallback_OnClientDisconnected( InstagibCleanupClient )
+ #endif
}
+#if SERVER
void function InstagibSetWeapons( entity player )
{
if ( !( player in file.playerWeapons ) )
@@ -62,4 +69,5 @@ void function InstagibCleanupClient( entity player )
{
if ( player in file.playerWeapons )
delete file.playerWeapons[ player ]
-} \ No newline at end of file
+}
+#endif \ No newline at end of file
diff --git a/Northstar.Custom/mod/scripts/vscripts/northstar_custom_autoprecache.gnut b/Northstar.Custom/mod/scripts/vscripts/northstar_custom_autoprecache.gnut
deleted file mode 100644
index 1d5b7ba9..00000000
--- a/Northstar.Custom/mod/scripts/vscripts/northstar_custom_autoprecache.gnut
+++ /dev/null
@@ -1,14 +0,0 @@
-untyped
-global function NorthstarCustomAutoprecache
-
-void function NorthstarCustomAutoprecache()
-{
- PrecacheWeapon( "mp_weapon_peacekraber" )
- PrecacheWeapon( "melee_pilot_kunai" )
-
- if ( GAMETYPE == GAMEMODE_SBOX )
- PrecacheWeapon( "mp_weapon_toolgun" )
-
- // will include this as a custom asset when mod v2 is written
- PrecacheModel( $"models/SPOILER_w_titan_particle_accelerator.mdl" )
-} \ No newline at end of file
diff --git a/Northstar.Custom/mod/scripts/vscripts/rodeo/sh_classic_rodeo.gnut b/Northstar.Custom/mod/scripts/vscripts/rodeo/sh_classic_rodeo.gnut
index 6e2f0259..038305c0 100644
--- a/Northstar.Custom/mod/scripts/vscripts/rodeo/sh_classic_rodeo.gnut
+++ b/Northstar.Custom/mod/scripts/vscripts/rodeo/sh_classic_rodeo.gnut
@@ -50,12 +50,15 @@ void function OnRodeoWeakpointDamaged( entity weakpoint, var damageInfo )
attacker.NotifyDidDamage( weakpoint, DamageInfo_GetHitBox( damageInfo ), DamageInfo_GetDamagePosition( damageInfo ), DamageInfo_GetCustomDamageType( damageInfo ) | DF_CRITICAL, damageAmount, DamageInfo_GetDamageFlags( damageInfo ), DamageInfo_GetHitGroup( damageInfo ), DamageInfo_GetWeapon( damageInfo ), DamageInfo_GetDistFromAttackOrigin( damageInfo ) )
// figure out damage to deal to titan
- entity attackerWeapon = attacker.GetActiveWeapon()
+ entity attackerWeapon = DamageInfo_GetWeapon( damageInfo )
+ if ( !IsValid( attackerWeapon ) )
+ attackerWeapon = attacker.GetActiveWeapon()
+
int rodeoDamage = attackerWeapon.GetWeaponSettingInt( eWeaponVar.damage_rodeo ) // only really on weapons that were in tf1, unfortunately
- if ( rodeoDamage == 0 )
- rodeoDamage = int( attackerWeapon.GetWeaponSettingInt( eWeaponVar.damage_near_value_titanarmor ) * ( attackerWeapon.GetWeaponSettingFloat( eWeaponVar.damage_headshot_scale ) * 1.5 ) ) // would use headshot scale, but it's a bit low in most cases to be competitive
+ if ( rodeoDamage == 0 ) // would use headshot scale, but it's a bit low in most cases to be competitive with weapons with a valid damage_rodeo
+ rodeoDamage = int( attackerWeapon.GetWeaponSettingInt( eWeaponVar.damage_near_value_titanarmor ) * ( attackerWeapon.GetWeaponSettingFloat( eWeaponVar.damage_headshot_scale ) * 1.5 ) )
- // damage titan
- titan.TakeDamage( rodeoDamage, attacker, attackerWeapon, { damageSourceId = eDamageSourceId.rodeo } )
+ // damage titan, make sure DF_BYPASS_SHIELD is a thing for proper behaviour
+ titan.TakeDamage( rodeoDamage, attacker, attackerWeapon, { damageSourceId = eDamageSourceId.rodeo, scriptType = DamageInfo_GetCustomDamageType( damageInfo ) | DF_BYPASS_SHIELD } )
}
#endif \ No newline at end of file
diff --git a/Northstar.Custom/mod/scripts/vscripts/_bleedout_damage.gnut b/Northstar.Custom/mod/scripts/vscripts/sh_bleedout_damage.gnut
index 8b21184a..8b21184a 100644
--- a/Northstar.Custom/mod/scripts/vscripts/_bleedout_damage.gnut
+++ b/Northstar.Custom/mod/scripts/vscripts/sh_bleedout_damage.gnut
diff --git a/Northstar.Custom/mod/scripts/vscripts/_custom_air_accel.gnut b/Northstar.Custom/mod/scripts/vscripts/sh_custom_air_accel.gnut
index faa92480..faa92480 100644
--- a/Northstar.Custom/mod/scripts/vscripts/_custom_air_accel.gnut
+++ b/Northstar.Custom/mod/scripts/vscripts/sh_custom_air_accel.gnut
diff --git a/Northstar.Custom/mod/scripts/vscripts/_custom_oob_timer.gnut b/Northstar.Custom/mod/scripts/vscripts/sh_custom_oob_timer.gnut
index 9689302c..9689302c 100644
--- a/Northstar.Custom/mod/scripts/vscripts/_custom_oob_timer.gnut
+++ b/Northstar.Custom/mod/scripts/vscripts/sh_custom_oob_timer.gnut
diff --git a/Northstar.Custom/mod/scripts/vscripts/sh_northstar_custom_precache.gnut b/Northstar.Custom/mod/scripts/vscripts/sh_northstar_custom_precache.gnut
new file mode 100644
index 00000000..3e66b5ca
--- /dev/null
+++ b/Northstar.Custom/mod/scripts/vscripts/sh_northstar_custom_precache.gnut
@@ -0,0 +1,11 @@
+untyped
+global function NorthstarCustomPrecache
+
+void function NorthstarCustomPrecache()
+{
+ PrecacheWeapon( "mp_weapon_peacekraber" )
+ PrecacheWeapon( "melee_pilot_kunai" )
+
+ // create kunai damage source so game won't crash when we hit smth with it
+ getconsttable()[ "eDamageSourceId" ][ "melee_pilot_kunai" ] <- eDamageSourceId.melee_pilot_emptyhanded
+} \ No newline at end of file
diff --git a/Northstar.Custom/mod/scripts/vscripts/_promode.gnut b/Northstar.Custom/mod/scripts/vscripts/sh_promode.gnut
index f390fed6..f390fed6 100644
--- a/Northstar.Custom/mod/scripts/vscripts/_promode.gnut
+++ b/Northstar.Custom/mod/scripts/vscripts/sh_promode.gnut
diff --git a/Northstar.Custom/mod/scripts/vscripts/weapons/mp_weapon_toolgun.nut b/Northstar.Custom/mod/scripts/vscripts/weapons/mp_weapon_toolgun.nut
deleted file mode 100644
index 94bd7429..00000000
--- a/Northstar.Custom/mod/scripts/vscripts/weapons/mp_weapon_toolgun.nut
+++ /dev/null
@@ -1,39 +0,0 @@
-untyped
-global function OnWeaponActivate_weapon_toolgun
-global function OnWeaponDeactivate_weapon_toolgun
-global function OnWeaponPrimaryAttack_weapon_toolgun
-global function OnWeaponStartZoomIn_weapon_toolgun
-global function OnWeaponStartZoomOut_weapon_toolgun
-#if SERVER
-global function OnWeaponNpcPrimaryAttack_weapon_toolgun
-#endif
-
-void function OnWeaponActivate_weapon_toolgun( entity weapon )
-{
- CallToolOnEquipped( weapon.GetOwner(), weapon )
-}
-
-void function OnWeaponDeactivate_weapon_toolgun( entity weapon )
-{
- CallToolOnUnequipped( weapon.GetOwner(), weapon )
-}
-
-var function OnWeaponPrimaryAttack_weapon_toolgun( entity weapon, WeaponPrimaryAttackParams attackParams )
-{
- CallToolOnFired( weapon.GetOwner(), weapon, attackParams )
-}
-
-void function OnWeaponStartZoomIn_weapon_toolgun( entity weapon )
-{
- CallToolOnAds( weapon.GetOwner(), weapon )
-}
-
-void function OnWeaponStartZoomOut_weapon_toolgun( entity weapon )
-{
- CallToolOnUnAds( weapon.GetOwner(), weapon )
-}
-
-var function OnWeaponNpcPrimaryAttack_weapon_toolgun( entity weapon, WeaponPrimaryAttackParams attackParams )
-{
- // do nothing for now, maybe make it launch nukes or something later that could be funny
-} \ No newline at end of file
diff --git a/Northstar.Custom/mod/scripts/vscripts/weapons/toolgun/sh_toolgun_tool_explode.nut b/Northstar.Custom/mod/scripts/vscripts/weapons/toolgun/sh_toolgun_tool_explode.nut
deleted file mode 100644
index 512c538c..00000000
--- a/Northstar.Custom/mod/scripts/vscripts/weapons/toolgun/sh_toolgun_tool_explode.nut
+++ /dev/null
@@ -1,30 +0,0 @@
-global function ToolgunToolCreateExplosion_Init
-
-void function ToolgunToolCreateExplosion_Init()
-{
- AddCallback_OnToolgunToolsInit( CreateToolgunToolCreateExplosion )
-}
-
-void function CreateToolgunToolCreateExplosion()
-{
- ToolgunTool createExplosionTool
- createExplosionTool.toolName = "Create explosion"
- createExplosionTool.toolDescription = "Creates an explosion"
-
- createExplosionTool.onFired = ToolgunToolCreateExplosion_Fire
-
- RegisterTool( createExplosionTool )
-}
-
-void function ToolgunToolCreateExplosion_Fire( entity player, entity weapon, WeaponPrimaryAttackParams attackParams )
-{
- #if SERVER
- int dist = 55555 // should hit edge of map at all times ideally
- vector forward = AnglesToForward( player.EyeAngles() )
-
- // raycast to explosion position
- TraceResults trace = TraceLine( player.EyePosition(), player.EyePosition() + ( dist * forward ), null, TRACE_MASK_NPCSOLID )
- // make explosion
- Explosion( trace.endPos, player, player, 90, 90, 100, 100, 0, trace.endPos, 5000, damageTypes.explosive, eDamageSourceId.burn, "exp_small" )
- #endif
-} \ No newline at end of file
diff --git a/Northstar.Custom/mod/scripts/vscripts/weapons/toolgun/sh_toolgun_tool_throw.nut b/Northstar.Custom/mod/scripts/vscripts/weapons/toolgun/sh_toolgun_tool_throw.nut
deleted file mode 100644
index d6975c6d..00000000
--- a/Northstar.Custom/mod/scripts/vscripts/weapons/toolgun/sh_toolgun_tool_throw.nut
+++ /dev/null
@@ -1,24 +0,0 @@
-global function ToolgunToolThrowEntity_Init
-
-void function ToolgunToolThrowEntity_Init()
-{
- AddCallback_OnToolgunToolsInit( CreateToolgunToolThrow )
-}
-
-void function CreateToolgunToolThrow()
-{
- ToolgunTool throwTool
- throwTool.toolName = "Throw entity"
- throwTool.toolDescription = "Spawns and throws the currently selected entity type"
-
- throwTool.onFired = ToolgunToolThrow_OnFired
-
- RegisterTool( throwTool )
-}
-
-void function ToolgunToolThrow_OnFired( entity player, entity weapon, WeaponPrimaryAttackParams attackParams )
-{
- #if SERVER
- ClientCommand( player, "ent_throw npc_frag_drone" )
- #endif
-} \ No newline at end of file
diff --git a/Northstar.Custom/mod/scripts/vscripts/weapons/toolgun/sh_toolgun_tools.gnut b/Northstar.Custom/mod/scripts/vscripts/weapons/toolgun/sh_toolgun_tools.gnut
deleted file mode 100644
index 4d7e9d89..00000000
--- a/Northstar.Custom/mod/scripts/vscripts/weapons/toolgun/sh_toolgun_tools.gnut
+++ /dev/null
@@ -1,196 +0,0 @@
-untyped
-global function ToolgunTools_Init
-global function AddCallback_OnToolgunToolsInit
-
-global function RegisterTool
-global function CallToolOnEquipped
-global function CallToolOnUnequipped
-global function CallToolOnFired
-global function CallToolOnAds
-global function CallToolOnUnAds
-
-#if SERVER
-global function SetToolgunAmmoCount
-global function SetToolgunProscreen
-#endif // #if SERVER
-
-global struct ToolgunTool
-{
- string toolName = ""
- string toolDescription = ""
-
- void functionref( entity, entity ) onEquipped
- void functionref( entity, entity ) onUnequipped
- void functionref( entity, entity, WeaponPrimaryAttackParams ) onFired
- void functionref( entity, entity ) onAds
- void functionref( entity, entity ) onUnAds
-}
-
-struct ToolgunPlayerSettings
-{
- int selectedToolIndex
- int ammoCount
- int proscreenNumber
-}
-
-// doing preprocessor defs inside the struct seemed to cause compiler errors so we define them separately
-#if CLIENT
-struct {
- array<void functionref()> onToolgunToolsInitCallbacks
-
- array<ToolgunTool> tools
- ToolgunPlayerSettings clientPlayerSettings
-} file
-#endif // #if CLIENT
-
-#if SERVER
-struct {
- array<void functionref()> onToolgunToolsInitCallbacks
-
- array<ToolgunTool> tools
- // serverside playersettings
- table<int, ToolgunPlayerSettings> playerSettings
-} file
-#endif // #if SERVER
-
-void function AddCallback_OnToolgunToolsInit( void functionref() callback )
-{
- file.onToolgunToolsInitCallbacks.append( callback )
-}
-
-void function ToolgunTools_Init()
-{
- //#if SERVER
- //AddCallback_OnClientConnecting( InitialiseToolgunSettings )
- //AddCallback_OnClientDisconnected( DestroyToolgunSettings )
- //#endif // #if SERVER
- //
- //// need this threaded so we can wait a frame
- //thread ToolgunTools_InitThreaded()
-}
-
-void function ToolgunTools_InitThreaded()
-{
- // wait a frame for tools to all init and add their callbacks
- WaitFrame()
-
- // call callbacks
- foreach ( void functionref() callback in file.onToolgunToolsInitCallbacks )
- callback()
-}
-
-void function RegisterTool( ToolgunTool toolStruct )
-{
- file.tools.append( toolStruct )
-}
-
-void function CallToolOnEquipped( entity player, entity weapon )
-{
- #if CLIENT
- if ( file.tools[ file.clientPlayerSettings.selectedToolIndex ].onEquipped != null )
- file.tools[ file.clientPlayerSettings.selectedToolIndex ].onEquipped( player, weapon )
- #endif // #if CLIENT
-
- #if SERVER
- // set ammo and proscreen numbers when equipped
- weapon.SetProScreenIntValForIndex( PRO_SCREEN_INT_LIFETIME_KILLS, file.playerSettings[ player.GetPlayerIndex() ].proscreenNumber )
- weapon.SetWeaponPrimaryClipCount( file.playerSettings[ player.GetPlayerIndex() ].ammoCount )
-
- if ( file.tools[ file.playerSettings[ player.GetPlayerIndex() ].selectedToolIndex ].onEquipped != null )
- file.tools[ file.playerSettings[ player.GetPlayerIndex() ].selectedToolIndex ].onEquipped( player, weapon )
- #endif // #if SERVER
-}
-
-void function CallToolOnUnequipped( entity player, entity weapon )
-{
- #if CLIENT
- if ( file.tools[ file.clientPlayerSettings.selectedToolIndex ].onUnequipped != null )
- file.tools[ file.clientPlayerSettings.selectedToolIndex ].onUnequipped( player, weapon )
- #endif // #if CLIENT
-
- #if SERVER
- if ( file.tools[ file.playerSettings[ player.GetPlayerIndex() ].selectedToolIndex ].onUnequipped != null )
- file.tools[ file.playerSettings[ player.GetPlayerIndex() ].selectedToolIndex ].onUnequipped( player, weapon )
- #endif // #if SERVER
-}
-
-void function CallToolOnFired( entity player, entity weapon, WeaponPrimaryAttackParams attackParams )
-{
- #if CLIENT
- if ( file.tools[ file.clientPlayerSettings.selectedToolIndex ].onFired != null )
- file.tools[ file.clientPlayerSettings.selectedToolIndex ].onFired( player, weapon, attackParams )
- #endif // #if CLIENT
-
- #if SERVER
- // ammocount needs to be +1 because we lose 1 ammo immediately after this function is run
- weapon.SetWeaponPrimaryClipCount( file.playerSettings[ player.GetPlayerIndex() ].ammoCount + 1 )
-
- if ( file.tools[ file.playerSettings[ player.GetPlayerIndex() ].selectedToolIndex ].onFired != null )
- file.tools[ file.playerSettings[ player.GetPlayerIndex() ].selectedToolIndex ].onFired( player, weapon, attackParams )
- #endif // #if SERVER
-}
-
-void function CallToolOnAds( entity player, entity weapon )
-{
- #if CLIENT
- if ( file.tools[ file.clientPlayerSettings.selectedToolIndex ].onAds != null )
- file.tools[ file.clientPlayerSettings.selectedToolIndex ].onAds( player, weapon )
- #endif // #if CLIENT
-
- #if SERVER
- if ( file.tools[ file.playerSettings[ player.GetPlayerIndex() ].selectedToolIndex ].onUnequipped != null )
- file.tools[ file.playerSettings[ player.GetPlayerIndex() ].selectedToolIndex ].onUnequipped( player, weapon )
- #endif // #if SERVER
-}
-
-void function CallToolOnUnAds( entity player, entity weapon )
-{
- #if CLIENT
- if ( file.tools[ file.clientPlayerSettings.selectedToolIndex ].onUnAds != null )
- file.tools[ file.clientPlayerSettings.selectedToolIndex ].onUnAds( player, weapon )
- #endif // #if CLIENT
-
- #if SERVER
- if ( file.tools[ file.playerSettings[ player.GetPlayerIndex() ].selectedToolIndex ].onUnequipped != null )
- file.tools[ file.playerSettings[ player.GetPlayerIndex() ].selectedToolIndex ].onUnequipped( player, weapon )
- #endif // #if SERVER
-}
-
-#if SERVER
-void function InitialiseToolgunSettings( entity player )
-{
- print( "initialising toolgun settings for player " + player )
-
- ToolgunPlayerSettings playerSettings
- playerSettings.selectedToolIndex = 0
-
- file.playerSettings[ player.GetPlayerIndex() ] <- playerSettings
-}
-
-void function DestroyToolgunSettings( entity player )
-{
- delete file.playerSettings[ player.GetPlayerIndex() ]
-}
-
-void function SetToolgunAmmoCount( entity player, int ammoCount )
-{
- entity currentWeapon = player.GetActiveWeapon()
- if ( ammoCount > currentWeapon.GetWeaponPrimaryClipCountMax() ) // setting clipcount to over max clipcount crashes so we need to prevent that
- return
-
- ToolgunPlayerSettings playerSettings = file.playerSettings[ player.GetPlayerIndex() ]
- playerSettings.ammoCount = ammoCount
-
- if ( currentWeapon.GetWeaponClassName() == "mp_weapon_toolgun" ) // set ammocount immediately if we've got toolgun equipped already
- currentWeapon.SetWeaponPrimaryClipCount( ammoCount )
-}
-
-void function SetToolgunProscreen( entity player, int proscreenNumber )
-{
- ToolgunPlayerSettings playerSettings = file.playerSettings[ player.GetPlayerIndex() ]
- playerSettings.proscreenNumber = proscreenNumber
-
- if ( player.GetActiveWeapon().GetWeaponClassName() == "mp_weapon_toolgun" ) // set proscreen number immediately if we've got toolgun equipped already
- player.GetActiveWeapon().SetProScreenIntValForIndex( PRO_SCREEN_INT_LIFETIME_KILLS, proscreenNumber )
-}
-#endif // #if SERVER \ No newline at end of file
diff --git a/Northstar.Custom/mod/scripts/weapons/melee_pilot_emptyhanded.txt b/Northstar.Custom/mod/scripts/weapons/melee_pilot_emptyhanded.txt
deleted file mode 100644
index 032867af..00000000
--- a/Northstar.Custom/mod/scripts/weapons/melee_pilot_emptyhanded.txt
+++ /dev/null
@@ -1,149 +0,0 @@
-WeaponData
-{
- // General
- "printname" "Melee"
- "shortprintname" "Melee"
- "description" "Description needed"
- "longdesc" "Description needed"
-
- "menu_icon" "rui/hud/common/melee_icon"
- "hud_icon" "rui/hud/common/melee_icon"
-
- "weaponClass" "human"
- "weaponType" "melee"
- "body_type" "battle_rifle"
- "fire_mode" "offhand_melee"
- "never_drop" "1"
-
- // Models
- "viewmodel" "models/weapons/empty_handed/ptpov_emptyhand.mdl"
- "playermodel" "models/weapons/empty_handed/w_empty_handed_human.mdl"
-
- // Melee
- "melee_can_hit_humansized" "1"
- "melee_can_hit_titans" "0"
- "melee_raise_recovery_animtime_normal" "0.75"
- "melee_raise_recovery_animtime_quick" "0.4"
- "melee_range" "60"
- "melee_rumble_on_hit" "pilot_melee_hit"
- "melee_rumble_on_hit_partial" "pilot_melee_hit_partial"
- "melee_freezelook_on_hit" "0.25"
- //"melee_sound_attack_1p" "Player_Melee_Backhand_1P"
- "melee_sound_attack_3p" "player_melee_kick_3p"
- "melee_anim_3p" "ACT_MP_MELEE_KNIFE_FIRST"
- "damage_flags" "DF_MELEE | DF_KNOCK_BACK"
- "impact_effect_table" "melee_human"
- "impulse_force" "35000"
- "offhand_keep_primary_in_hand" "1"
-
- "zoom_effects" "0"
-
- MP_BASE
- {
- "melee_lunge_target_range" "110"
- "melee_lunge_target_angle" "30"
- "melee_damage" "100"
- "melee_damage_heavyarmor" "0"
- "melee_attack_animtime" "0"
- "melee_lunge_time" "0.3"
- "melee_anim_1p_number" "2"
- }
-
- SP_BASE
- {
- "melee_lunge_target_range" "130"
- "melee_lunge_target_angle" "40"
- "melee_damage" "125"
- "melee_damage_heavyarmor" "125"
- "melee_attack_animtime" "0.0"
- "melee_lunge_time" "0.2"
- "melee_anim_1p_number" "1" // ACT_VM_MELEE_ATTACK1, 2, or 3
- }
-
- //
-
- "ammo_suck_behavior" "melee_weapons"
- "viewkick_spring" "melee"
-
- "viewkick_pitch_base" "-1.75"
- "viewkick_pitch_random" "0.75"
- "viewkick_pitch_softScale" "0.3"
- "viewkick_pitch_hardScale" "5.5"
-
- "viewkick_yaw_base" "1.0"
- "viewkick_yaw_random" "0.38"
- "viewkick_yaw_softScale" "0.38"
- "viewkick_yaw_hardScale" "15.5"
-
- "viewkick_roll_base" "0"
- "viewkick_roll_randomMin" "0.6"
- "viewkick_roll_randomMax" "0.8"
- "viewkick_roll_softScale" "0.2"
- "viewkick_roll_hardScale" "20.75"
-
- //
- "damage_rodeo" "100"
- "aimassist_disable_hipfire" "1"
- "aimassist_disable_ads" "1"
-
- // Bob
- //"bob_cycle_time" "0.45"
- //"bob_vert_dist" "0.075"
- //"bob_horz_dist" "0.05"
- //"bob_max_speed" "150"
- //"bob_pitch" "0.75"
- //"bob_yaw" "1"
- //"bob_roll" "-0.75"
-
- // Sway
- //"sway_rotate_attach" "SWAY_ROTATE"
- //"sway_min_x" "-0.3"
- //"sway_min_y" "-0.5"
- //"sway_min_z" "-0.5"
- //"sway_max_x" "0.3"
- //"sway_max_y" "0.5"
- //"sway_max_z" "0.1"
- //"sway_min_pitch" "-3"
- //"sway_min_yaw" "-3.5"
- //"sway_min_roll" "-2"
- //"sway_max_pitch" "3"
- //"sway_max_yaw" "3.5"
- //"sway_max_roll" "3"
- //"sway_translate_gain" "10"
- //"sway_rotate_gain" "12"
- //"sway_move_forward_translate_x" "0"
- //"sway_move_forward_translate_z" "-0.5"
- //"sway_move_back_translate_x" "-2"
- //"sway_move_back_translate_z" "-1"
- //"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" "4"
- //"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_up_rotate_pitch" "1"
- //"sway_turn_down_rotate_pitch" "-1"
-
- // WeaponED Unhandled Key/Values and custom script Key/Values
- "deployfirst_time" "1.25"
- "sprintcycle_time" ".55"
-
- Mods
- {
- rocket_arena
- {
- "melee_damage" "33"
- }
-
- // mod for testing low damage, high knockback "shove" melee rebalance
- test_push
- {
- "melee_damage" "5"
- "impulse_force" "150000"
- }
- }
-}
diff --git a/Northstar.Custom/mod/scripts/weapons/mp_weapon_toolgun.txt b/Northstar.Custom/mod/scripts/weapons/mp_weapon_toolgun.txt
deleted file mode 100644
index 37e9bc25..00000000
--- a/Northstar.Custom/mod/scripts/weapons/mp_weapon_toolgun.txt
+++ /dev/null
@@ -1,587 +0,0 @@
-WeaponData
-{
- // General
- "printname" "#WPN_TOOLGUN"
- "shortprintname" "#WPN_TOOLGUN_SHORT"
- "description" "#WPN_TOOLGUN_DESC"
- "longdesc" "#WPN_TOOLGUN_LONGDESC"
-
- "fast_swap_to" "1"
-
- "menu_icon" "r2_ui/menus/loadout_icons/secondary_weapon/secondary_mozambique"
- "hud_icon" "r2_ui/menus/loadout_icons/secondary_weapon/secondary_mozambique"
-
- "weaponClass" "human"
- "weaponSubClass" "projectile_shotgun"
- "body_type" "close_quarters"
- "fire_mode" "auto"
- "pickup_hold_prompt" "Hold [USE] [WEAPONNAME]"
- "pickup_press_prompt" "[USE] [WEAPONNAME]"
- "minimap_reveal_distance" "32000"
- "leveled_pickup" "1"
-
- "OnWeaponActivate" "OnWeaponActivate_weapon_toolgun"
- "OnWeaponDeactivate" "OnWeaponDeactivate_weapon_toolgun"
- "OnWeaponPrimaryAttack" "OnWeaponPrimaryAttack_weapon_toolgun"
- "OnWeaponStartZoomIn" "OnWeaponStartZoomIn_weapon_toolgun"
- "OnWeaponStartZoomOut" "OnWeaponStartZoomOut_weapon_toolgun"
- "OnWeaponNpcPrimaryAttack" "OnWeaponNpcPrimaryAttack_weapon_toolgun"
-
- // Menu
- "menu_category" "handgun"
- "menu_anim_class" "small"
- "stat_damage" "57"
- "stat_range" "40"
- "stat_accuracy" "44"
- "stat_rof" "27"
-
- // Models
- "viewmodel" "models/weapons/pstl_sa3/ptpov_pstl_sa3.mdl"
- "playermodel" "models/weapons/pstl_sa3/w_pstl_sa3.mdl"
- "activitymodifier" "pistol"
- "holster_type" "pistol"
-
- // Effects
- "tracer_effect" "weapon_tracers_shotgun"
- "impact_effect_table" "bullet_mastiff"
- "vortex_impact_effect" "P_impact_xo_shield_cp"
- "vortex_absorb_effect" "wpn_vortex_projectile_shotgun_FP"
- "vortex_absorb_effect_third_person" "wpn_vortex_projectile_shotgun"
- "vortex_absorb_sound" "Vortex_Shield_AbsorbBulletSmall"
- "vortex_absorb_sound_1P_VS_3P" "Vortex_Shield_AbsorbBulletSmall_1P_VS_3P"
- "projectile_adjust_to_gun_barrel" "1"
-
- "projectilemodel" "models/dev/empty_model.mdl"
- //"projectile_trail_effect_0" "P_dragonsbreath_trail"
- "projectile_trail_effect_0" "P_mastiff_proj"
-
- "sound_dryfire" "shotgun_dryfire"
- "sound_pickup" "wpn_pickup_Pistol_1P"
- "fire_sound_1_player_1p" "weapon_shotgunpistol_fire_suppressed_1p"
- "fire_sound_1_player_3p" "weapon_shotgunpistol_fire_suppressed_3p"
- "fire_sound_1_npc" "Weapon_ShotgunPistol_Fire_NPC"
- "sound_zoom_in" "Weapon_EVA8_ADS_In"
- "sound_zoom_out" "Weapon_EVA8_ADS_Out"
-
- "low_ammo_sound_name_1" "ShotgunPistol_LowAmmo_Shot1"
- "low_ammo_sound_name_2" "ShotgunPistol_LowAmmo_Shot2"
-
- //"fx_shell_eject_view" "wpn_shelleject_shotshell_FP"
- //"fx_shell_eject_world" "wpn_shelleject_shotshell"
- //"fx_shell_eject_attach" "shell"
-
- "fx_muzzle_flash_view" "P_wpn_muz_mastiff_FP"
- "fx_muzzle_flash_world" "P_wpn_muz_mastiff"
- "fx_muzzle_flash_attach" "muzzle_flash"
-
- "damage_flags" "DF_SHOTGUN | DF_BULLET | DF_KNOCK_BACK | DF_DISMEMBERMENT"
- "damage_type" "bullet"
- "damage_headshot_scale" "1.5"
-
- "explosion_inner_radius" "16"
- "explosionradius" "32"
- "impulse_force" "0"
-
-
- "critical_hit_damage_scale" "1"
-
- "projectile_inherit_owner_velocity_scale" "0.0"
-
- "ammo_clip_size" "6" // arbitrarily large number
- "titanarmor_critical_hit_required" "1"
-
-
-
- MP_BASE
- {
- "ammo_default_total" "6"
- "ammo_stockpile_max" "6"
- "ammo_no_remove_from_stockpile" "1"
- "ammo_min_to_fire" "0"
-
- "aimassist_adspull_weaponclass" "broad"
-
- "critical_hit" "1"
-
- // Damage - When Used by Players
- "damage_near_value" "30"
- "damage_far_value" "25"
- "damage_near_value_titanarmor" "30"
- "damage_far_value_titanarmor" "20"
- // "explosion_damage" "50" // 150
- // "explosion_damage_heavy_armor" "50" // 150
- "damage_near_distance" "750"
- "damage_far_distance" "1000"
-
- "red_crosshair_range" "750"
-
- // Damage - When Used by NPCs
- "npc_damage_near_value" "11"
- "npc_damage_far_value" "5"
- "npc_damage_near_value_titanarmor" "<KEEP_DEFAULT>"
- "npc_damage_far_value_titanarmor" "<KEEP_DEFAULT>"
- "npc_damage_near_distance" "500"
- "npc_damage_far_distance" "1000"
-
- // NPC
- "npc_min_engage_range" "0"
- "npc_max_engage_range" "1000"
- "npc_min_engage_range_heavy_armor" "100"
- "npc_max_engage_range_heavy_armor" "2000"
- "npc_min_range" "0"
- "npc_max_range" "8000"
-
- "npc_min_burst" "1"
- "npc_max_burst" "1"
- "npc_rest_time_between_bursts_min" "0.5"
- "npc_rest_time_between_bursts_max" "0.5"
-
- "enable_highlight_networking_on_creation" "<KEEP_DEFAULT>"
-
- "damage_heavyarmor_nontitan_scale" "0.35"
- }
-
- SP_BASE
- {
- "ammo_default_total" "20"
- "ammo_stockpile_max" "32"
- "ammo_no_remove_from_stockpile" "0"
- "ammo_min_to_fire" "1"
-
- "aimassist_adspull_weaponclass" "broad_sp"
-
- "critical_hit" "0"
-
- // Damage - When Used by Players
- "damage_near_value" "30"
- "damage_far_value" "20"
- "damage_near_value_titanarmor" "30"
- "damage_far_value_titanarmor" "20"
- // "explosion_damage" "50"
- // "explosion_damage_heavy_armor" "50"
- "damage_near_distance" "750"
- "damage_far_distance" "850"
-
- "red_crosshair_range" "750"
-
- // Damage - When Used by NPCs
- "npc_damage_near_value" "11"
- "npc_damage_far_value" "5"
- "npc_damage_near_value_titanarmor" "10"
- "npc_damage_far_value_titanarmor" "8"
- "npc_damage_near_distance" "500"
- "npc_damage_far_distance" "1000"
-
- // NPC
- "npc_min_engage_range" "0"
- "npc_max_engage_range" "1000"
- "npc_min_engage_range_heavy_armor" "100"
- "npc_max_engage_range_heavy_armor" "2000"
- "npc_min_range" "0"
- "npc_max_range" "8000"
-
- "npc_min_burst" "1"
- "npc_max_burst" "1"
- "npc_rest_time_between_bursts_min" "0.7"
- "npc_rest_time_between_bursts_max" "1.0"
-
- "enable_highlight_networking_on_creation" "1"
-
- "damage_heavyarmor_nontitan_scale" "1"
- }
-
- "proficiency_poor_spreadscale" "5.0"
- "proficiency_average_spreadscale" "5.0"
- "proficiency_good_spreadscale" "3.66667"
- "proficiency_very_good_spreadscale" "3.66667"
-
- "viewmodel_offset_ads" "0 0 0"
- "dof_zoom_nearDepthStart" "4.750"
- "dof_zoom_nearDepthEnd" "11.00"
- "dof_nearDepthStart" "0"
- "dof_nearDepthEnd" "0"
-
- //"bolt_hitsize" "20"
-
- "bolt_hitsize" "0.5"
- "bolt_hitsize_grow1_time" "0.055"
- "bolt_hitsize_grow1_size" "5.0"
- "bolt_hitsize_grow2_time" "0.18"
- "bolt_hitsize_grow2_size" "7.5"
- "bolt_hitsize_growfinal_lerptime" "0.18"
- "bolt_hitsize_growfinal_size" "7.5"
-
- "bolt_gravity_enabled" "1"
-
- // Behavior
- "fire_rate" "3.0"
- "zoom_time_in" "0.2"
- "zoom_time_out" "0.15"
- "zoom_fov" "55"
- "reload_time" "2.1"
- "reload_time_late1" "1.05"
- "reloadempty_time" "2.1"
- "reloadempty_time_late1" "1.05"
- "holster_time" "0.3"
- "deploy_time" "0.4"
- "lower_time" "0.2"
- "raise_time" "0.2"
- "vortex_refire_behavior" "bullet"
- "allow_empty_fire" "0"
- "reload_enabled" "0"
- "allow_empty_click" "1"
- "empty_reload_only" "0"
- "trigger_snipercam" "0"
- "allow_headshots" "1"
- "headshot_distance" "1400"
- "primary_fire_does_not_block_sprint" "0"
- "ads_move_speed_scale" "0.5"
- "aimassist_disable_hipfire" "1"
- "aimassist_disable_ads" "1"
- "aimassist_disable_hipfire_titansonly" "0"
- "aimassist_disable_ads_titansonly" "0"
-
- "sprint_fractional_anims" "0"
-
- // Spread
- "spread_stand_hip" "0"
- "spread_stand_hip_run" "0"
- "spread_stand_hip_sprint" "0"
- "spread_stand_ads" "0"
- "spread_crouch_hip" "0"
- "spread_crouch_ads" "0"
- "spread_air_hip" "0"
- "spread_air_ads" "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" "shotgun"
-
- "viewkick_pitch_base" "-2.25"
- "viewkick_pitch_random" "1"
- "viewkick_pitch_softScale" "1.4"
- "viewkick_pitch_hardScale" "0.5"
-
- "viewkick_yaw_base" "-0.95"
- "viewkick_yaw_random" "0.5"
- "viewkick_yaw_softScale" "1.5"
- "viewkick_yaw_hardScale" "0.5"
-
- "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" "0.0"
- "viewkick_ads_weaponFraction" "1.0"
- "viewkick_ads_weaponFraction_vmScale" "0.15"
-
- "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.4"
- "bob_vert_dist" "0.19"
- "bob_horz_dist" "0.1"
- "bob_max_speed" "150"
- "bob_pitch" "0.75"
- "bob_yaw" "-1.7"
- "bob_roll" "1.2"
-
- // Bob_Zoomed
- "bob_cycle_time_zoomed" "0.4"
- "bob_vert_dist_zoomed" "0.01"
- "bob_horz_dist_zoomed" "0.01"
- "bob_max_speed_zoomed" "150"
- //"bob_pitch_zoomed" "0.002"
- //"bob_yaw_zoomed" "-.002"
- //"bob_roll_zoomed" ".002"
-
- // Rumble
- "fire_rumble" "rumble_pistol_heavy"
-
- // Sway
- "sway_rotate_attach" "SWAY_ROTATE"
- "sway_min_x" "-0.5"
- "sway_min_y" "-0.5"
- "sway_min_z" "-0.6"
- "sway_max_x" "0.5"
- "sway_max_y" "0.5"
- "sway_max_z" "0.6"
- "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" "2.5"
- "sway_rotate_gain" "7"
- "sway_move_forward_translate_x" "-0.1"
- "sway_move_forward_translate_z" "-0.5"
- "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" "-4"
- "sway_move_right_translate_y" "1"
- "sway_move_right_translate_z" "-0.5"
- "sway_move_right_rotate_roll" "4"
- "sway_move_up_translate_z" "-1"
- "sway_move_down_translate_z" "1"
- "sway_turn_left_rotate_yaw" "-2.5"
- "sway_turn_right_rotate_yaw" "2.5"
-
- "sway_turn_left_translate_y" ".5"
- "sway_turn_right_translate_y" "-.5"
- "sway_turn_up_translate_z" ".2"
- "sway_turn_down_translate_z" "-.2"
- "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"
-
- // Zoomed Sway
- "sway_rotate_attach_zoomed" "SWAY_ROTATE_ZOOMED"
- "sway_rotate_attach_blend_time_zoomed" "0.2"
- "sway_rotate_gain_zoomed" "5"
-
- "sway_min_yaw_zoomed" "-0.073"
- "sway_max_yaw_zoomed" "0.073"
- "sway_turn_left_rotate_yaw_zoomed" "-0.085"
- "sway_turn_right_rotate_yaw_zoomed" "0.085"
-
- "sway_min_roll_zoomed" "-4"
- "sway_max_roll_zoomed" "4"
- "sway_turn_left_rotate_roll_zoomed" "0"
- "sway_turn_right_rotate_roll_zoomed" "0"
-
- "sway_move_right_rotate_roll_zoomed" "0.2"
- "sway_move_left_rotate_roll_zoomed" "-0.2"
-
- "sway_min_pitch_zoomed" "-0.03"
- "sway_max_pitch_zoomed" "0.03"
- "sway_turn_up_rotate_pitch_zoomed" "0.07"
- "sway_turn_down_rotate_pitch_zoomed" "-0.07"
-
- // 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"
- "sprintcycle_time" ".55"
-
- // Bodygroups:
- "bodygroup1_name" "suppressor_cyl_med"
- "bodygroup1_set" "0"
- "bodygroup2_name" "suppressor_sq_med"
- "bodygroup2_set" "1" // enable suppressor bodygroup by default
- "bodygroup3_name" "sight_cqh"
- "bodygroup3_set" "0"
- "bodygroup4_name" "sight_acgs"
- "bodygroup4_set" "0"
- "bodygroup5_name" "sight_cro"
- "bodygroup5_set" "0"
- "bodygroup6_name" "proscreen"
- "bodygroup6_set" "1" // enable proscreen bodygroup by default
-
- "clip_bodygroup" "pstl_sa3_shell"
- "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" "0"
- "clip_bodygroup_show_for_milestone_3" "0"
-
- Mods
- {
- iron_sights
- {
- }
- extended_ammo
- {
- "ammo_stockpile_max" "160"
- "ammo_clip_size" "8"
- "ammo_default_total" "160"
- }
- silencer //HACK JFS: Doesn't get applied on amped weapons. See bug 170460
- {
- "bodygroup2_set" "1"
- "silenced" "1"
- "fire_sound_1_player_1p" "weapon_shotgunpistol_fire_suppressed_1p"
- "fire_sound_1_player_3p" "weapon_shotgunpistol_fire_suppressed_3p"
- "damage_near_value" "--10"
- "damage_far_value" "--4"
- //"bodygroup2_set" "1"
-
- //"rumble" "4"
- //"tracer_effect" "P_wpn_tracer_pistol"
- "minimap_reveal_distance" "1"
-
- "fx_muzzle_flash_view" "wpn_muzzleflash_pistol_sup_FP"
- "fx_muzzle_flash_world" "wpn_muzzleflash_pistol_sup"
- //"fx_muzzle_flash_attach" "muzzle_flash_suppressor_sq"
- }
- pas_run_and_gun
- {
- "primary_fire_does_not_block_sprint" "1"
- "crosshair_force_sprint_fade_disabled" "1"
- }
- alt_spread
- {
- }
- hcog
- {
- "bodygroup3_set" "1"
- "bodygroup4_set" "0"
- "bodygroup5_set" "0"
- "viewmodel_offset_ads" "0 -6 -0.79"
- "dof_zoom_nearDepthStart" "0.750"
- "dof_zoom_nearDepthEnd" "8.000"
- }
- threat_scope
- {
- "bodygroup3_set" "0"
- "bodygroup4_set" "0"
- "bodygroup5_set" "1"
- "threat_scope_enabled" "1"
- "threat_scope_bounds_tagname1" "SCR_TR_CRO"
- "threat_scope_bounds_tagname2" "SCR_BL_CRO"
- "viewmodel_offset_ads" "0 -10 -0.83"
- "dof_zoom_nearDepthStart" "5.040"
- "dof_zoom_nearDepthEnd" "5.737"
- }
- pro_screen
- {
- "ui8_enable" "1"
- "bodygroup6_set" "1"
- }
- pas_fast_reload
- {
- "reload_time" "*0.7"
- "reload_time_late1" "*0.7"
- "reloadempty_time" "*0.7"
- "reloadempty_time_late1" "*0.7"
- }
- pas_fast_ads
- {
- //Fast ADS
- "zoom_time_in" "*0.5"
- "zoom_time_out" "*0.6"
- }
- pas_fast_swap
- {
- //Fast Swap
- "fast_swap_to" "1"
- }
- tactical_cdr_on_kill
- {
-
- }
- burn_mod_shotgun_pistol
- {
- "damage_near_value" "++5"
- "damage_far_value" "++10"
- "damage_near_value_titanarmor" "++30"
- "damage_far_value_titanarmor" "++30"
- "is_burn_mod" "1"
-
- //Effects
- "fx_muzzle_flash_view" "P_wpn_muz_SGPistol_amp_FP"
- "fx_muzzle_flash_world" "P_wpn_muz_mastiff_amp"
- "projectile_trail_effect_0" "P_mastiff_proj_amp"
- "impact_effect_table" "titan_bullet_elec"
- }
-
- }
-
-
- "ui1_enable" "1"
- "ui1_draw_cloaked" "1"
- UiData1
- {
- "ui" "ui/sa3_crosshair"
- "mesh" "models/weapons/attachments/sa3_rui_upper"
- Args
- {
- vis player_zoomfrac
- }
- }
-
- "ui2_enable" "1"
- UiData2
- {
- "ui" "ui/sa3_ammo_counter"
- "mesh" "models/weapons/attachments/sa3_rui_lower"
- Args
- {
- vis player_zoomfrac
- ammo weapon_ammo
- clipSize weapon_clipSize
- clipCount weapon_stockpileClipCount
- }
- }
-
- "ui8_enable" "1"
- UiData8
- {
- "ui" "ui/pro_screen_panel"
- "mesh" "models/weapons/attachments/pro_screen_rui_upper"
- Args
- {
- proValue proscreen_int0
- proOwnedByPlayer proscreen_owner_is_player
- }
- }
-
- active_crosshair_count "1"
- rui_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_mozambique"
- "base_spread" "0.0"
- Args
- {
- isFiring weapon_is_firing
- }
- }
- }
-}