aboutsummaryrefslogtreecommitdiff
path: root/Northstar.CustomServers/scripts/vscripts/weapons/_at_turrets.gnut
diff options
context:
space:
mode:
authorBobTheBob <32057864+BobTheBob9@users.noreply.github.com>2021-08-31 23:14:58 +0100
committerBobTheBob <32057864+BobTheBob9@users.noreply.github.com>2021-08-31 23:14:58 +0100
commit9a96d0bff56f1969c68bb52a2f33296095bdc67d (patch)
tree4175928e488632705692e3cccafa1a38dd854615 /Northstar.CustomServers/scripts/vscripts/weapons/_at_turrets.gnut
parent27bd240871b7c0f2f49fef137718b2e3c208e3b4 (diff)
downloadNorthstarMods-9a96d0bff56f1969c68bb52a2f33296095bdc67d.tar.gz
NorthstarMods-9a96d0bff56f1969c68bb52a2f33296095bdc67d.zip
move to new mod format
Diffstat (limited to 'Northstar.CustomServers/scripts/vscripts/weapons/_at_turrets.gnut')
-rw-r--r--Northstar.CustomServers/scripts/vscripts/weapons/_at_turrets.gnut284
1 files changed, 0 insertions, 284 deletions
diff --git a/Northstar.CustomServers/scripts/vscripts/weapons/_at_turrets.gnut b/Northstar.CustomServers/scripts/vscripts/weapons/_at_turrets.gnut
deleted file mode 100644
index b061c1824..000000000
--- a/Northstar.CustomServers/scripts/vscripts/weapons/_at_turrets.gnut
+++ /dev/null
@@ -1,284 +0,0 @@
-untyped
-
-global function ATTurrets_Init
-global function CreateATTurret
-global function ATTurretSettings
-//global function SetDriverOnTurret
-global function PROTO_ATTurretsEnabled
-global function PROTO_Simulate_Turret_Use
-
-const USE_DEBOUNCE_TIME = 0.3
-const FX_ANTI_TITAN_SHIELD_WALL = $"P_anti_titan_shield_3P"
-const vector AT_TURRET_SHIELD_COLOR = Vector( 115, 247, 255 )
-
-void function ATTurrets_Init()
-{
- AddSpawnCallbackEditorClass( "turret", "turret_pilot_at", ATTurretSettings )
- RegisterSignal( "ClearDriver" )
- RegisterSignal( "DismebarkATTurret" )
-}
-
-void function CreateATTurret( vector origin, vector angles )
-{
- entity turret = CreateEntity( "turret" )
- turret.kv.editorclass = "turret_pilot_at"
- turret.kv.settings = "PROTO_at_turret"
- turret.kv.teamnumber = 0
- turret.SetValueForModelKey( $"models/weapons/sentry_turret/sentry_turret.mdl" )
- turret.kv.origin = origin
- turret.kv.angles = angles
- DispatchSpawn( turret )
- ATTurretSettings( turret )
-}
-
-void function ATTurretSettings( entity turret )
-{
- if ( PROTO_ATTurretsEnabled() )
- {
- turret.SetUsable()
- turret.SetUsableByGroup( "pilot" )
- turret.SetUsePrompts( "Hold %use% to use AT-Turret", "Press %use% to use AT-Turret" )
- //AddCallback_OnUseEntity( turret, SetDriverOnTurret )
- AddCallback_OnUseEntity( turret, PROTO_Simulate_Turret_Use )
-
- local attachmentID = turret.LookupAttachment( "muzzle_flash" )
- local origin = turret.GetAttachmentOrigin( attachmentID )
- local angles = turret.GetAttachmentAngles( attachmentID )
-
- entity cpoint = CreateEntity( "info_placement_helper" )
- SetTargetName( cpoint, UniqueString( "shield_wall_controlpoint" ) )
- DispatchSpawn( cpoint )
-
- turret.e.shieldWallFX = CreateEntity( "info_particle_system" )
- entity shieldWallFX = turret.e.shieldWallFX
- shieldWallFX.SetValueForEffectNameKey( FX_ANTI_TITAN_SHIELD_WALL )
- shieldWallFX.kv.start_active = 1
- SetShieldWallCPoint( shieldWallFX, cpoint )
- shieldWallFX.SetOwner( turret )
- shieldWallFX.kv.VisibilityFlags = (ENTITY_VISIBLE_TO_FRIENDLY | ENTITY_VISIBLE_TO_ENEMY) // not owner only
- shieldWallFX.kv.cpoint1 = cpoint.GetTargetName()
- shieldWallFX.SetStopType( "destroyImmediately" )
- shieldWallFX.SetOrigin( origin )
- shieldWallFX.SetAngles( angles - Vector(0,0,90) )
- shieldWallFX.SetParent( turret, "muzzle_flash", true, 0.0 )
- DispatchSpawn( shieldWallFX )
- SetShieldWallCPointOrigin( shieldWallFX, AT_TURRET_SHIELD_COLOR )
- }
- else
- {
- turret.DisableDraw()
- turret.NotSolid()
- }
-}
-
-bool function PROTO_ATTurretsEnabled()
-{
- return ( GetCurrentPlaylistVarInt( "at_turrets_enabled", 0 ) == 1 )
-}
-
-/*/////////////////////////////////////////////////////////////////
- WEAPON PROTOTYPE
-///////////////////////////////////////////////////////////////////*/
-
-function PROTO_Simulate_Turret_Use( turret, player )
-{
- expect entity( turret )
- expect entity( player )
-
- if ( Time() < player.p.PROTO_UseDebounceEndTime )
- return
-
- PROTO_ActivateTurret( turret, player )
-}
-
-const array<int> TURRET_CANCEL_BUTTONS =
-[
- IN_USE,
- IN_DUCK,
- IN_DUCKTOGGLE,
- IN_WEAPON_CYCLE,
- IN_MELEE,
- IN_OFFHAND0,
- IN_OFFHAND1,
- IN_OFFHAND2,
- IN_OFFHAND3,
- IN_OFFHAND4,
- IN_JUMP
-]
-
-void function PROTO_ActivateTurret( entity turret, entity player )
-{
- if ( turret.GetOwner() == player )
- {
- player.Signal( "DismebarkATTurret" )
- }
- else
- {
- if ( turret.GetOwner() == null )
- {
- turret.DisableDraw()
- turret.NotSolid()
- SetShieldWallCPointOrigin( turret.e.shieldWallFX, < 0, 0, 0 > )
- turret.SetOwner( player )
- player.p.PROTO_UseDebounceEndTime = Time() + USE_DEBOUNCE_TIME
- foreach( int button in TURRET_CANCEL_BUTTONS )
- AddButtonPressedPlayerInputCallback( player, button, PROTO_DisembarkATTurret )
- AddEntityCallback_OnDamaged( player, PlayerDamagedWhileOnTurret )
- thread MonitorPilot( turret, player )
- }
- else
- {
- SendHudMessage( player, "Turret in use.", -1, 0.4, 255, 255, 0, 255, 0.0, 0.5, 0.0 )
- }
- }
-}
-
-void function PlayerDamagedWhileOnTurret( entity player, var damageInfo )
-{
- if ( Time() < player.p.PROTO_UseDebounceEndTime )
- return
-
- player.Signal( "DismebarkATTurret" )
-}
-
-function MonitorPilot( entity turret, entity player )
-{
- player.EndSignal( "OnDestroy" )
- player.EndSignal( "DismebarkATTurret")
- turret.EndSignal( "OnDestroy" )
-
- player.ForceStand()
- entity playerMover = CreateOwnedScriptMover( player )
- player.SetParent( playerMover, "ref", true )
- vector forward = turret.GetForwardVector()
- vector basePos = turret.GetOrigin() + forward * -25
- vector startOrigin = player.GetOrigin()
- float moveTime = 0.1
- playerMover.NonPhysicsMoveTo( basePos, moveTime, 0.0, 0.0 )
- playerMover.NonPhysicsRotateTo( turret.GetAngles(), moveTime, 0, 0 )
- player.FreezeControlsOnServer()
-
- StorePilotWeapons( player )
-
- OnThreadEnd(
- function() : ( turret, player, playerMover, startOrigin )
- {
- if ( IsValid( player ) )
- {
- player.ClearParent()
- player.UnforceStand()
- ClearPlayerAnimViewEntity( player )
- player.UnfreezeControlsOnServer()
- RetrievePilotWeapons( player )
- ViewConeZeroInstant( player )
- foreach( int button in TURRET_CANCEL_BUTTONS )
- RemoveButtonPressedPlayerInputCallback( player, button, PROTO_DisembarkATTurret )
- RemoveEntityCallback_OnDamaged( player, PlayerDamagedWhileOnTurret )
- player.p.PROTO_UseDebounceEndTime = Time() + USE_DEBOUNCE_TIME
- PutEntityInSafeSpot( player, turret, null, startOrigin, player.GetOrigin() )
- }
-
- if ( IsValid( turret ) )
- {
- turret.EnableDraw()
- turret.Solid()
- SetShieldWallCPointOrigin( turret.e.shieldWallFX, AT_TURRET_SHIELD_COLOR )
- turret.SetOwner( null )
- }
-
- playerMover.Destroy()
- }
- )
-
- wait moveTime
-
- player.PlayerCone_SetSpecific( forward )
- ViewConeZeroInstant( player )
-
- // PROTO: Supporting ability to pick different turret weapons for turrets in LevelEd and the legacy Defender prototype turret
- // We need a predator cannon style turret in SP.
- if ( IsMultiplayer() )
- {
- //player.GiveWeapon( "mp_weapon_smr", [ "PROTO_at_turret" ] )
- //player.SetActiveWeaponByName( "mp_weapon_smr" )
-
- // modded code: smr's at turret mod does exist in release tf2
- player.GiveWeapon( "mp_weapon_defender", [ "PROTO_at_turret" ] )
- player.SetActiveWeaponByName( "mp_weapon_defender" )
- }
- else if ( turret.HasKey( "weaponsettings" ) )
- {
- // See if we have any special turret mods on this weapon
- array<string> turretMods = []
- array<string> mods = GetWeaponMods_Global( turret.kv.weaponsettings )
- foreach ( mod in mods )
- {
- if ( mod.find( "PROTO_at_turret" ) == 0 )
- turretMods.append( "PROTO_at_turret" )
- }
-
- player.GiveWeapon( turret.kv.weaponsettings, turretMods )
- player.SetActiveWeaponByName( turret.kv.weaponsettings )
- }
-
- wait 0.1
-
- player.UnfreezeControlsOnServer()
-
- ViewConeLockedForward( player )
-
- player.WaitSignal( "OnDeath" )
-}
-
-void function PROTO_DisembarkATTurret( entity player )
-{
- if ( Time() < player.p.PROTO_UseDebounceEndTime )
- return
-
- player.Signal( "DismebarkATTurret" )
-}
-
-/*/////////////////////////////////////////////////////////////////
- TURRET ENTITY PROTOTYPE
-///////////////////////////////////////////////////////////////////*/
-//
-//function SetDriverOnTurret( turret, player )
-//{
-// if ( turret.GetOwner() == player )
-// {
-// turret.SetOwner( null )
-// turret.ClearDriver()
-// player.Signal( "ClearDriver" )
-// }
-// else
-// {
-// entity oldOwner = expect entity( turret.GetOwner() )
-// if ( oldOwner != null )
-// {
-// oldOwner.Signal( "ClearDriver" )
-// turret.ClearDriver()
-// }
-// turret.SetOwner( player )
-// turret.SetDriver( player )
-// thread ClearDriverOnDeath( turret, player )
-// }
-// //turret.SetUsePrompts( "DEACTIVATE", "DEACTIVATE" )
-// //turret.SetOwner( player )
-// //turret.SetBossPlayer( player )
-// //turret.SetUsableByGroup( "owner pilot" )
-//}
-//
-//function ClearDriverOnDeath( turret, player )
-//{
-// player.EndSignal( "ClearDriver" )
-// player.EndSignal( "OnDestroy" )
-// turret.EndSignal( "OnDestroy" )
-//
-// player.WaitSignal( "OnDeath" )
-//
-// if ( IsValid( turret ) )
-// turret.ClearDriver()
-//}
-////TODO: Handle death and handle deactivate.
-//
-// \ No newline at end of file